{"id":26256476,"url":"https://github.com/netcracker/qubership-grafana-plugins-init","last_synced_at":"2025-08-21T07:37:25.029Z","repository":{"id":272913123,"uuid":"905766733","full_name":"Netcracker/qubership-grafana-plugins-init","owner":"Netcracker","description":"Container with Grafana plugins for deployment Grafana in isolated environments","archived":false,"fork":false,"pushed_at":"2025-08-04T07:37:21.000Z","size":68,"stargazers_count":0,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-08-04T10:54:20.928Z","etag":null,"topics":["monitoring","observability","qubership-observability"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Netcracker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-19T13:33:50.000Z","updated_at":"2025-08-04T07:37:18.000Z","dependencies_parsed_at":"2025-04-14T09:22:53.642Z","dependency_job_id":"a5162f23-8261-4a42-8dae-87d57a181aee","html_url":"https://github.com/Netcracker/qubership-grafana-plugins-init","commit_stats":null,"previous_names":["netcracker/qubership-grafana-plugins-init"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/Netcracker/qubership-grafana-plugins-init","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-grafana-plugins-init","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-grafana-plugins-init/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-grafana-plugins-init/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-grafana-plugins-init/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Netcracker","download_url":"https://codeload.github.com/Netcracker/qubership-grafana-plugins-init/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-grafana-plugins-init/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271445699,"owners_count":24761119,"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","status":"online","status_checked_at":"2025-08-21T02:00:08.990Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["monitoring","observability","qubership-observability"],"created_at":"2025-03-13T20:18:14.031Z","updated_at":"2025-08-21T07:37:25.023Z","avatar_url":"https://github.com/Netcracker.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview\n\n[![Build](https://github.com/Netcracker/qubership-grafana-plugins-init/actions/workflows/build.yaml/badge.svg)](https://github.com/Netcracker/qubership-grafana-plugins-init/actions/workflows/build.yaml)\n[![Check Links](https://github.com/Netcracker/qubership-grafana-plugins-init/actions/workflows/link-checker.yaml/badge.svg)](https://github.com/Netcracker/qubership-grafana-plugins-init/actions/workflows/link-checker.yaml)\n[![Super-Linter](https://github.com/Netcracker/qubership-grafana-plugins-init/actions/workflows/super-linter.yaml/badge.svg)](https://github.com/Netcracker/qubership-grafana-plugins-init/actions/workflows/super-linter.yaml)\n\nThis init container is intended for grafana customization with predefined list of plugins.\n\nAll the plugins listed in plugins list file will be added to grafana while appropriate grafana pod start in Kubernetes.\n\nThese plugins are downloaded while this image build instead of init container runtime.\n\n## Plugins list\n\n* DataSources:\n  * [ClickHouse 3.4.3](https://grafana.com/grafana/plugins/vertamedia-clickhouse-datasource)\n  * [JSON 0.6.7](https://grafana.com/grafana/plugins/simpod-json-datasource)\n  * [GraphQL Data Source 1.5.0](https://grafana.com/grafana/plugins/retrodaredevil-wildgraphql-datasource)\n  * [Infinity 3.2.1](https://grafana.com/grafana/plugins/yesoreyeram-infinity-datasource)\n  * [VictoriaMetrics 0.16.0](https://grafana.com/grafana/plugins/victoriametrics-metrics-datasource)\n  * [VictoriaLogs 0.18.1](https://grafana.com/grafana/plugins/victoriametrics-logs-datasource)\n* Applications:\n  * [Grafana OnCall 1.16.3](https://grafana.com/grafana/plugins/grafana-oncall-app)\n  * [Grafana Logs Drilldown 1.0.20](https://grafana.com/grafana/plugins/grafana-lokiexplore-app)\n  * [Grafana Traces Drilldown 1.1.0](https://grafana.com/grafana/plugins/grafana-exploretraces-app)\n  * [Grafana Profiles Drilldown 1.4.1](https://grafana.com/grafana/plugins/grafana-pyroscope-app)\n* Panels:\n  * [Breadcrumb Panel 1.2.0](https://grafana.com/grafana/plugins/timomyl-breadcrumb-panel)\n  * [D3 Gauge 2.0.4](https://grafana.com/grafana/plugins/briangann-gauge-panel)\n  * [Diagram 1.10.4](https://grafana.com/grafana/plugins/jdbranham-diagram-panel)\n  * [Service Dependency Graph 4.2.0](https://grafana.com/grafana/plugins/novatec-sdg-panel)\n  * [Status Panel 2.0.2](https://grafana.com/grafana/plugins/vonage-status-panel)\n  * [SVG 0.1.5](https://grafana.com/grafana/plugins/aceiot-svg-panel)\n  * [HTML graphics 2.1.1](https://grafana.com/grafana/plugins/gapit-htmlgraphics-panel)\n\n## How to it work\n\nDuring build grafana-plugin-init container all plugins download from\n[https://grafana.com/api/plugins](https://grafana.com/api/plugins)\n(User interface available by link [https://grafana.com/grafana/plugins/](https://grafana.com/grafana/plugins/))\nand add into docker image.\n\nWhen operator create or update Grafana deployment it create deployment with two containers:\n\n* grafana-plugins-init - `initContainer` which run with volume `grafana-plugins` (mount to `/opt/plugins`) in which it\n  copy all plugins\n* grafana - `container` with Grafana which also has volume `grafana-plugins` (mount to `/var/lib/grafana/plugins`)\n\nWhen pod `grafana-deployment` start with init container, it always run first and execute initialize actions.\nSo when `initContainer` start it copy all plugins from image to mounted volume `grafana-plugins`.\n\nNext it complete it work and grafana container start also with volume `grafana-plugins`.\n\nStructure of init image:\n\n```bash\n/\n└── entrypoint.sh\n└── etc\n    └── grafana\n        └── plugins\n            ├── NeoCat-grafana-cal-heatmap-panel-d7d3579\n            ├── Vonage-Grafana_Status_panel-ca77e0d\n            ├── algenty-grafana-flowcharting-276ca4a\n            ├── black-mirror-1-singlestat-math-0aca146\n            ├── briangann-gauge-panel\n            ├── ...\n            └── vertamedia-clickhouse-datasource\n```\n\n## How to add plugin\n\nThere is file `plugins.list` which contains plugin name and plugin version specified via space separator.\nCurrently plugins can be download only from:\n\n```bash\nhttps://grafana.com/api/plugins\n```\n\nFormat:\n\n```bash\n\u003cplugin_name\u003e \u003cversion\u003e\n```\n\nFor example for include plugin which store on artifactory by link:\n\n```bash\nhttps://grafana.com/api/plugins/briangann-gauge-panel/versions/2.0.1/download\n```\n\nneed specify:\n\n```bash\nbriangann-gauge-panel 2.0.1\n```\n\n## How to add plugin manually\n\nIn some cases it may be necessary add plugin which was downloaded manually from Grafana.com or from any other source.\n\nFor build this image locally with custom plugins need:\n\n1. Edit `download_plugins.sh` and comment step for remove directory `/tmp/plugins`\n\n    ```bash\n    echo \"=\u003e Remove directories from pervious build...\"\n\n    rm -rf ${DESTINATION_PATH}\n    mkdir -p ${DESTINATION_PATH}\n    ```\n\n2. Download and extract folder with plugin to `/tmp/plugins`. For example:\n\n    ```bash\n    /tmp\n    └── /plugins\n        └── /\u003cmanually-downloaded-plugin-1\u003e\n            └── \u003cplugin-content\u003e\n        └── /\u003cmanually-downloaded-plugin-2\u003e\n            └── \u003cplugin-content\u003e\n    ```\n\n3. Run\n\n    ```bash\n    docker build .\n    ```\n\nDuring build script `docker build` download all plugins as ZIP files into `/tmp/downloads`.\nThen it unarchive all plugins into `/tmp/plugins`.\n\nAnd during build docker image docker will copy all files from `/tmp/plugins` to `/etc/grafana/plugins/`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetcracker%2Fqubership-grafana-plugins-init","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetcracker%2Fqubership-grafana-plugins-init","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetcracker%2Fqubership-grafana-plugins-init/lists"}