go-cross-filter

command module
v0.0.0-...-ec5001f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 19, 2018 License: Apache-2.0 Imports: 14 Imported by: 0

README

Go Cross Filter

Table of Contents

Overview

Axibase Cross Filter is a Go-language application that implements the cross-filter concept for use with data stored in Axibase Time Series Database. The Cross Filter application provides the capability to apply graphical client-side filters to metadata and time series values, without reloading data from the server. Datasets are loaded from ATSD using SQL queries and refreshed on a schedule. Cross Filter uses cross-filter.js and datatables to build and maintain indices to optimize client-side filtering. Filters are built using widgets from the Axibase Charts library.

Dependencies

Client:

  1. Bootstrap 3.3.5
  2. jQuery 2.1.4
  3. D3.js 3.5.6
  4. DataTables 1.10.9
  5. DataTables Scroller 1.3.0
  6. Crossfilter 1.3.12

Server:

  1. ATSD Revision more current than 11130
  2. Go dependencies from Godeps.json

Getting Started

Requirements
  1. Go Language Build Tools
  2. Go Dependency Management Tool dep
Install

Navigate to your destination folder and execute the following commands:

Load last version from github repository:

# Load last version from github repository
go get github.com/axibase/go-capacity-screener

# Compile the project:
godep go build

Usage

Default program structure is enumerated below:

.
|-- config.json                   - Capacity Screener configuration file
|-- go-capacity-screener          - Capacity Screener binary
|-- templates                     - Web page templates
|   |-- index.tpl
|   `-- view.tpl
`-- portals                       - User defined portals folder
    |-- itcam-rtt.conf
    |-- nmon.conf
    `-- oracle_databases.conf
Edit Configuration Files

Define ATSD URL, username and password:

{
  "url": "http://atsd_server:8088",   #define ATSD access credentials
  "user": "username",
  "password": "password",
  "port": 8000,                       #application web view port
  "updatePeriod": "1m",               #interval used to update all defined tables
  "tables": [
  ...                                 #define tables here
  ]
}

Define tables:

...
"tables": [
  {
      "name": "Linux Performance",                                 #table name                               
      "entityGroups": ["nmon-linux", "nurswg-dc1", "nurswg-dc2"],  #which entity groups can be used to filter the table(dataset) 
      "sqlQuery": ATSD_SQL_QUERY,                                  #SQL query to load data from ATSD
      "portalConfigPath": "portals/linux_performance.config",      #portal configuration file
      "columns": [                  #all column names should match aliases in sqlQuery.
        {
          "name": "entity",                  
          "entity": true            #entity column flag (only one per table) to view the portal
        },
        {
          "name": "os",             
          "filter": {}            #filter object to use column for a visual filtering.
        },
        {
          "name": "loc_area",
          "filter": {}
        },
        {
          "name": "app",
          "filter": {}
        },
        {
          "name": "FS id",
          "filter": {}
        },
        {
          "name": "Cpu Busy, %",
          "filter": {
            range: [0, 100]         #range option to set histogram range for numeric columns
          },
          "formatter": {            #specify formatter for numeric columns to render column value based on formula (round(multiplier * value))
            "round": 1              #you can specify "round" and "multiplier" independently.
          }
        },
        {
          "name": "Memory Used, %",
          "filter": {
            range: [0, 100]
          },
          "formatter": {
            "round": 1
          }
        },
        {
          "name": "Memory Free, Mb",
          "filter": {},
          "formatter": {
            "round": 0,
            "multiplier": 0.00097656  #converting bytes to Mb
          }
        },
        {
          "name": "FS used, %",
          "filter": {
            range: [0, 100]
          },
          "formatter": {
            "round": 1
          }
        }
      ]
  },
  ...
]
Launch the Application
./go-cross-filter

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Godeps
_workspace/src/github.com/golang/glog
Package glog implements logging analogous to the Google-internal C++ INFO/ERROR/V setup.
Package glog implements logging analogous to the Google-internal C++ INFO/ERROR/V setup.
_workspace/src/github.com/gorilla/context
Package context stores values shared during a request lifetime.
Package context stores values shared during a request lifetime.
_workspace/src/github.com/gorilla/mux
Package gorilla/mux implements a request router and dispatcher.
Package gorilla/mux implements a request router and dispatcher.
model

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL