Generate kibana visualizations and dashboards dynamically.
Install library by using npm
npm install kibana-generic-visualization
or by using yarn
yarn add kibana-generic-visualization
Using CommonJS
module loader:
const { KibanaGenericVisualization } = require('kibana-generic-visualization');
Using ES6
module loader:
import { KibanaGenericVisualization } from 'kibana-generic-visualization';
Create new instance of KibanaGenericVisualization
and provide config (about config have a look at API section):
const options = {
kibanaVersion: '6.3.2',
api: {
host: 'https://api-eu.logz.io/v1',
token: 'your-kibana-api-secret-token',
},
};
const kibanaGenericVisualization = new KibanaGenericVisualization(options);
Create visualizations for each service instance and combine them in a dashboard.
const serviceNames {
'my-first-redis-service',
'my-second-redis-service',
};
const metrics = [
{ fieldName: 'metrics.mem_fragmentation_ratio', customLabel: 'Memory Fragmentation Ratio' },
{ fieldName: 'metrics.evicted_keys', customLabel: 'Removed Keys' },
];
const redisVisualizationIds = await kibanaGenericVisualization.createVisualizations(
'line', // visualization type
serviceNames, // service names array
serviceName => `Redis ${serviceName} Metric`, // generic visualization name
metrics, // log attributes to display
'my-saved-search-id' // saved search id
);
const dashboardGridOptions = {
width: 24,
height: 15,
maxWidth: 48,
};
kibanaGenericVisualization.createDashboard('Redis Dashboard', redisVisualizationIds.created, dashboardGridOptions);
Option | Description |
---|---|
kibanaVersion |
Version of Kibana |
api.host |
Kibana API endpoint host |
api.token |
Kibana API endpoint token |
Method | Description |
---|---|
createVisualizations(stateType, serviceNames, title, fields, savedSearchId) |
Create kibana visualizations |
createDashboard(title, visualizationIds, dashboardGridConfig) |
Create kibana dashboard |
getKibanaObjectsByType(objectType) |
Get objects from kibana by object type |