Table of Contents |
---|
...
When opCharts is not in standalone mode 'opcharts_running_standalone' => 'false', opCharts will be linked to NMIS and the index page will show a node search and a default dashboard (if the user has chosen one). In this mode there are no custom opcharts users or customers. Although the menu will allow the user to create them they will not be used. All users are loaded from the NMIS configuration as well as their privilege mode.
Authentication not working? Check out: Configuring NMIS to use Internal Authentication
Node search: the search box for nodes will search by the ip address, node name or group name. Tokens are separated by spaces,-,_,etc, and the search is currently only starting from the beginning of a token.
...
Dashboards can be created and set as the default for many different views of the system (depending on standalone mode the options to do this differ). More information on Dashboards can be found HERE: Dashboards
- defined application wide (not stored per user)
- names are unique, cannot be changed after creation (because they are used to link into other places, like default dashboards
- permissions per dashboard define what roles can view the specific dashboard
- care should to be taken to ensure that a dashboard that is visible to a customer does not contain graphs that the customer should not see (no permissions exist for charts)
- allows admin to adjust if specific dashboards should override auto generated dashboards
- if a dashboard is deleted which is also set to a users default dashboard the user will just see the regular index page because the one picked cannot be found.
...
When opCharts is linked to NMIS it displays the information available from the model of the node, all graphs that exist for a node or node resource index are shown. To override these default dashboards to show only the information you prefer, create a dashboard with the charts you would like to show. Then enter the correct default for string. opCharts will search from most-specific default_for to least specific default_for, if nothing is found matching it will display an auto-generated dashboard.
...
The search for node only dashboards goes like this:
"${model_name}",
"default"
In the shipping configuration , a dashboard is defined for no dashboards are defined. If the user wanted to override the default dashboard for the "CiscoRouter" , so this will display for all nodes that use the CiscoRouter model. model, put "CiscoRouter" in the default_for box of the dashboard and it will then be displayed in place of the auto-generated dashboard. All components displayed will have the "node" in the component replaced with the node that is currently being viewed.
Node Resource / indexed resource
The search for this is more complex but it works the same way:
"${model_name}_${resource_name}_${dataset_name}",
"node_${resource_name}_${dataset_name}",
"${model_name}_${resource_id}_default",
"node_${resource_name}_default",
"${model_name}_resource_default",
"node_resource_default"
Example:
omk/opCharts/nodes/asgard/resources/nodehealth/datasets/MemoryFreeIO
...
So dashboards can be set per resource / dataset specifically for a model or for all nodes (in that case use word "node" instead of the model name). The default config ships with an example of this (with no dataset) for all node interfaces which is named "node interface defaults".
Charts
Charts can display several data sets in one place. The data sets can come from different sources if desired, each data set has it's own set of options and parameters. There are also options and parameters for the chart as a whole.
Creating an SQL Chart
SQL charts are not currently supported in the chart creator. To make an SQL chart you will need to edit /usr/local/omk/conf/charts/charts.json. The default configuration comes with several examples for SQL data sets. The layout of an SQL chart is this:
Code Block |
---|
{
"parameters" : {
"time_period" : "time_difference",
"end_date" : "7-Mar-2014 14:03:01",
"start_date" : "7-Mar-2014 13:48:01"
},
"datasets" : [
{
"parameters" : {
"aggregation_function" : 1,
"lineType" : "column",
"query" : "select * from nodes",
"value_column" : "sum",
"axis" : "0",
"groupby" : [
"group_column"
]
},
"data_source" : "local_mysql",
"options" : {
"datasetTitle" : "Groups"
},
"name" : "sqlquery_dataset",
"type" : "sql_query"
}
],
"options" : {
"titleText" : ""
},
"name" : "SQL Test",
"type" : "non-time-chart"
}, |
Looking at an individual dataset will help us understand:
Code Block |
---|
{
"parameters" : {
"query" : "select * from nodes",
"groupby" : [
"group_column"
],
"aggregation_function" : 1,
"value_column" : "unused",
"lineType" : "column",
"axis" : "0",
},
"data_source" : "local_mysql",
"options" : {
"datasetTitle" : "Groups"
},
"name" : "sqlquery_dataset",
"type" : "sql_query"
} |
Breaking this down:
From the data_source "local_mysql", run the "sql_query" that is "select * from nodes", group the result by "group_column" and COUNT the number or rows in each group. Display the results in a column graph on the 0 axis.
query:
The SQL to run. This SQL can contain almost anything you would like. Currently there is one special "substitution" value that can be specified. When "user.customer" is found in a query, it is replaced with the name of the customer of the current user (or in the admin's case, the one specified in the advanced menu, if none is selected the query will likely fail).
groupby:
...
does not ship with any examples of this.