{"id":22870963,"url":"https://github.com/percona-lab/percona-mixins","last_synced_at":"2026-03-19T23:52:10.396Z","repository":{"id":169042252,"uuid":"605032472","full_name":"Percona-Lab/percona-mixins","owner":"Percona-Lab","description":null,"archived":false,"fork":false,"pushed_at":"2023-03-06T14:20:17.000Z","size":71,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-10-30T09:49:42.884Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jsonnet","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/Percona-Lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-02-22T09:51:31.000Z","updated_at":"2023-05-22T10:08:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"4761c928-4079-4cfc-8d26-8a7e57414bd8","html_url":"https://github.com/Percona-Lab/percona-mixins","commit_stats":null,"previous_names":["percona-lab/percona-mixins"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Percona-Lab/percona-mixins","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Percona-Lab%2Fpercona-mixins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Percona-Lab%2Fpercona-mixins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Percona-Lab%2Fpercona-mixins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Percona-Lab%2Fpercona-mixins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Percona-Lab","download_url":"https://codeload.github.com/Percona-Lab/percona-mixins/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Percona-Lab%2Fpercona-mixins/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29558100,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T20:52:40.164Z","status":"ssl_error","status_checked_at":"2026-02-17T20:48:10.325Z","response_time":100,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-12-13T13:16:43.263Z","updated_at":"2026-02-17T21:02:09.854Z","avatar_url":"https://github.com/Percona-Lab.png","language":"Jsonnet","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Percona Mixins PoC\n\nThis project is a Prof of Concept to source, build and test Percona Dashboards, Alerts, Rules, and other configurations for the PMM.\n\n## Build\n\nYou need to have Go 1.19 and make installed.\n\n```sh\ngit clone https://github.com/Percona-Lab/percona-mixins.git\ncd percona-mixins\n\nmake vendor generate\n```\n\n# Goals\n\nValidate [Monitoring Mixins](https://monitoring.mixins.dev/) as a viable solution to meet such architectural characteristics:\n\n- compatibility\n- maintainability\n- extensibility\n\nCurrently with [Percona Grafana Dashboards](https://github.com/percona/grafana-dashboards) there such problems to meet them:\n\n- dashboards are incompatible with upstream\n- maintaining dashboards as JSON objects is tough and cumbersome\n  - updating some query/panel/variable in one dashboard that exists in many dashboards means modifying all of them\n  - review makes a little sense and is quite hard\n- to add new platforms, infra means that we should also operate with JSON object manually adjusting it to the none-standard variables\n  - dashboards were done manually instead of importing upstream dashboards that are much more advanced\n    - https://github.com/kubernetes-monitoring/kubernetes-mixin\n    - https://github.com/prometheus/node_exporter/tree/master/docs/node-mixin\n    - alerting and recording rules that are maintained by upstream are absent\n\n## Upstream and Compatibility\n\nSee if we could improve monitoring by using more upstream configurations and standards.\n\nUpstream monitoring communities are much bigger, and they drive innovation and standardization. Being outside the community means slower development, less extensibility, and poor compatibility.\n\n### Rules: Alerts and Recording\n\nAbsent as a class in PMM, but the community has many Alerts and Recording rules that would bring more value to the PMM.\n\n## Maintainability\n\nVery hard to maintain plain JSON objects. Monitoring Mixins uses pure functional language to create templates, libraries, etc.\n\n## Extensibility\n\nPMM could easily import (and, if needed, adjust) Monitoring Mixins from the upstream projects. Following standard packaging means that for the customers that can't use PMM there is a standard method to generate a compatible configuration for the Prometheus-compatible solutions.\n\nCheck if we could upstream most of our configurations (dashboards) to the community projects. That will:\n\n- bring more community contributors\n- enables modularity of the solution\n\nFor example, we could upstream our dashboards to:\n\n- https://github.com/prometheus-community/postgres_exporter/tree/master/postgres_mixin\n- https://github.com/prometheus/mysqld_exporter/tree/main/mysqld-mixin\n\n# Plan\n\n1. Import some of the mixins from the community\n2. Create a couple of the Percona dashboards as the mixins\n3. Validate compatibility and document it for the dashboards\n4. Validate upstream Alerts and Recording rules\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpercona-lab%2Fpercona-mixins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpercona-lab%2Fpercona-mixins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpercona-lab%2Fpercona-mixins/lists"}