No description or website provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Godeps
images
model/table
portals
templates
web
.gitignore
LICENSE
README.md
app.go
config.go
config.json
controllers.go
jsonconfig.go
main.go
views.go

README.md

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