{"id":15843648,"url":"https://github.com/bobbytes/kibana-generic-visualization","last_synced_at":"2025-08-11T15:15:45.985Z","repository":{"id":84160975,"uuid":"171650664","full_name":"bobbytes/kibana-generic-visualization","owner":"bobbytes","description":"Create dynamic Kibana visualizations and dashboards","archived":false,"fork":false,"pushed_at":"2019-05-09T10:43:58.000Z","size":389,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"develop","last_synced_at":"2025-03-23T01:36:32.121Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bobbytes.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-02-20T10:19:23.000Z","updated_at":"2023-04-30T20:57:41.000Z","dependencies_parsed_at":"2023-03-01T08:00:19.633Z","dependency_job_id":null,"html_url":"https://github.com/bobbytes/kibana-generic-visualization","commit_stats":{"total_commits":40,"total_committers":1,"mean_commits":40.0,"dds":0.0,"last_synced_commit":"9d1a1ee51a5df49a9008286c9fa248533975b7c5"},"previous_names":["DaNautilus/kibana-generic-visualization","danautilus/kibana-generic-visualization"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bobbytes%2Fkibana-generic-visualization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bobbytes%2Fkibana-generic-visualization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bobbytes%2Fkibana-generic-visualization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bobbytes%2Fkibana-generic-visualization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bobbytes","download_url":"https://codeload.github.com/bobbytes/kibana-generic-visualization/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246681131,"owners_count":20816838,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-05T17:02:06.754Z","updated_at":"2025-04-01T17:36:57.732Z","avatar_url":"https://github.com/bobbytes.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eKibana Generic Visualizaton\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://david-dm.org/DaNautilus/kibana-generic-visualization\"\u003e\n    \u003cimg src=\"https://david-dm.org/DaNautilus/kibana-generic-visualization/status.svg?style=flat\" alt=\"dependency\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://travis-ci.org/DaNautilus/kibana-generic-visualization\"\u003e\n    \u003cimg src=\"https://travis-ci.org/DaNautilus/kibana-generic-visualization.svg?branch=master\" alt=\"travis\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://ci.appveyor.com/project/DaNautilus/kibana-generic-visualization/branch/master\"\u003e\n    \u003cimg src=\"https://ci.appveyor.com/api/projects/status/pkgp74uous41f3p2?svg=true\u0026passingText=windows%20passing\u0026pendingText=windows%20pending\u0026failingText=windows%20failing\" alt=\"appveyor\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://sonarcloud.io/dashboard/index/DaNautilus_kibana-generic-visualization\"\u003e\n    \u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=DaNautilus_kibana-generic-visualization\u0026metric=coverage\" alt=\"coverage\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://sonarcloud.io/dashboard/index/DaNautilus_kibana-generic-visualization\"\u003e\n    \u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=DaNautilus_kibana-generic-visualization\u0026metric=alert_status\" alt=\"quality gate\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n![divider](./divider.png)\n\n## ❯ Why\n\nGenerate kibana visualizations and dashboards dynamically.\n\n![divider](./divider.png)\n\n## ❯ Table of Contents\n\n- [Quick Start](#-quick-start)\n- [API](#-api)\n\n![divider](./divider.png)\n\n## ❯ Quick Start\n\n### Installation\n\nInstall library by using `npm`\n\n```shell\nnpm install kibana-generic-visualization\n```\n\nor by using `yarn`\n\n```shell\nyarn add kibana-generic-visualization\n```\n\n### How to use\n\n#### Step 1: Import KibanaGenericVisualization\n\nUsing `CommonJS` module loader:\n\n```javascript\nconst { KibanaGenericVisualization } = require('kibana-generic-visualization');\n```\n\nUsing `ES6` module loader:\n\n```javascript\nimport { KibanaGenericVisualization } from 'kibana-generic-visualization';\n```\n\n#### Step 2: Create new instance of KibanaGenericVisualization\n\nCreate new instance of `KibanaGenericVisualization` and provide config ([about config have a look at API section](#-api)):\n\n```javascript\nconst options = {\n    kibanaVersion: '6.3.2',\n    api: {\n      host: 'https://api-eu.logz.io/v1',\n      token: 'your-kibana-api-secret-token',\n    },\n};\n\nconst kibanaGenericVisualization = new KibanaGenericVisualization(options);\n```\n\n#### Step 3: Create visualizations and dashboard\n\nCreate visualizations for each service instance and combine them in a dashboard.\n\n```javascript\nconst serviceNames {\n  'my-first-redis-service',\n  'my-second-redis-service',\n};\n\nconst metrics = [\n  { fieldName: 'metrics.mem_fragmentation_ratio', customLabel: 'Memory Fragmentation Ratio' },\n  { fieldName: 'metrics.evicted_keys', customLabel: 'Removed Keys' },\n];\n\nconst redisVisualizationIds = await kibanaGenericVisualization.createVisualizations(\n  'line', // visualization type\n  serviceNames, // service names array\n  serviceName =\u003e `Redis ${serviceName} Metric`, // generic visualization name\n  metrics, // log attributes to display\n  'my-saved-search-id' // saved search id\n);\n\nconst dashboardGridOptions = {\n  width: 24,\n  height: 15,\n  maxWidth: 48,\n};\n\nkibanaGenericVisualization.createDashboard('Redis Dashboard', redisVisualizationIds.created, dashboardGridOptions);\n```\n\n![divider](./divider.png)\n\n## API\n\n### Options\n\n| Option          | Description               |\n| --------------- | ------------------------- |\n| `kibanaVersion` | Version of Kibana         |\n| `api.host`      | Kibana API endpoint host  |\n| `api.token`     | Kibana API endpoint token |\n\n### Methods\n\n| Method                                                                        | Description                            |\n| ----------------------------------------------------------------------------- | -------------------------------------- |\n| `createVisualizations(stateType, serviceNames, title, fields, savedSearchId)` | Create kibana visualizations           |\n| `createDashboard(title, visualizationIds, dashboardGridConfig)`               | Create kibana dashboard                |\n| `getKibanaObjectsByType(objectType)`                                          | Get objects from kibana by object type |\n\n![divider](./divider.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbobbytes%2Fkibana-generic-visualization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbobbytes%2Fkibana-generic-visualization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbobbytes%2Fkibana-generic-visualization/lists"}