{"id":20670118,"url":"https://github.com/gitpod-io/observability","last_synced_at":"2025-04-19T18:13:40.195Z","repository":{"id":36990076,"uuid":"418966266","full_name":"gitpod-io/observability","owner":"gitpod-io","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-14T00:24:25.000Z","size":9669,"stargazers_count":10,"open_issues_count":10,"forks_count":5,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-14T01:27:14.136Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gitpod-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-10-19T14:43:36.000Z","updated_at":"2025-04-14T00:24:29.000Z","dependencies_parsed_at":"2024-04-01T01:28:22.601Z","dependency_job_id":"4181985b-2714-4397-8adf-d313a7e011c5","html_url":"https://github.com/gitpod-io/observability","commit_stats":{"total_commits":449,"total_committers":21,"mean_commits":21.38095238095238,"dds":0.5256124721603563,"last_synced_commit":"8d84d83939b3214e5b3884b22b918f43b8370bed"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitpod-io%2Fobservability","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitpod-io%2Fobservability/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitpod-io%2Fobservability/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitpod-io%2Fobservability/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gitpod-io","download_url":"https://codeload.github.com/gitpod-io/observability/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249760300,"owners_count":21321843,"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-11-16T20:18:05.667Z","updated_at":"2025-04-19T18:13:40.165Z","avatar_url":"https://github.com/gitpod-io.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Observability\n\n[![Build Status](https://github.com/gitpod-com/observability/workflows/ci/badge.svg)](https://github.com/gitpod-com/observability/actions)\n[![Slack](https://img.shields.io/badge/join%20slack-%23observability-brightgreen.svg)](https://gitpod.slack.com/archives/C01KGM9D8LE)\n[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-908a85?logo=gitpod)](https://gitpod.io/#https://github.com/gitpod-com/observability)\n\nSet of Jsonnet files used to deploy customized [monitoring-satellites](#monitoring-satellite) and [monitoring-centrals](#monitoring-central) into different clusters.\n\n## Table of contents\n\n- [Applications](#applications)\n  - [Monitoring-satellite](#monitoring-satellite)\n  - [Monitoring-central](#monitoring-central)\n\n## Applications\n\n### Monitoring-satellite\n\nMonitoring-satellite is composed by a set of components responsible for collecting and pushing observability signals from a Kubernetes cluster to a remote location (usually monitoring-central) while also being responsible for the alerting evaluation and alert routing.\n\n#### Components\n\n* [Alertmanager](https://github.com/prometheus/alertmanager)\n* [Grafana](https://github.com/grafana/grafana)\n* [Kube-State-Metrics](https://github.com/kubernetes/kube-state-metrics)\n* [Node-exporter](https://github.com/prometheus/node_exporter)\n* [Prometheus](https://github.com/prometheus/prometheus)\n* [Prometheus-Operator](https://github.com/prometheus-operator/prometheus-operator)\n* [OpenTelemetry-Collector](https://github.com/open-telemetry/opentelemetry-collector) (If tracing support is enabled)\n\nTo customize the stack, we make use of Jsonnet's [external-variables feature](https://jsonnet.org/ref/stdlib.html). We expect one single external variable called `config` which is loaded and merged with monitoring-satellite to customize the stack.\n\nWe expect `config` to be a JSON object, where extra configuration can be added as we develop new features for monitoring-satellite. For more details, please check [monitoring-satellite data schema](docs/monitoring-satellite.proto).\n\nA minimal example would be:\n```bash\njsonnet -c -J vendor -m monitoring-satellite/manifests \\\n--ext-code config=\"{\n    namespace: 'monitoring-satellite',\n    clusterName: 'fake-cluster',\n}\" \\\nmonitoring-satellite/manifests/yaml-generator.jsonnet | xargs -I{} sh -c 'cat {} | gojsontoyaml \u003e {}.yaml' -- {}\n```\n\n### Monitoring-central\n\n#### Components\n\n* [Grafana](https://github.com/grafana/grafana)\n* [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics)\n\nTo customize the stack, we make use of Jsonnet's [external-variables feature](https://jsonnet.org/ref/stdlib.html). We expect one single external variable called `config` which is loaded and merged with monitoring-satellite to customize the stack.\n\nWe expect `config` to be a JSON object, where extra configuration can be added as we develop new features for monitoring-central. For more details, please check [monitoring-central data schema](docs/monitoring-central.proto).\n\nA minimal example would be:\n```bash\njsonnet -c -J vendor -m monitoring-central/manifests \\\n--ext-code config=\"{\n    namespace: 'monitoring-central',\n    grafana: {\n        nodePort: 32164,\n        DNS: 'http://fake.grafana.url',\n        GCPExternalIpAddress: 'fake_external_ip_address',\n        IAPClientID: 'fakeIAP_ID',\n        IAPClientSecret: 'fakeIAP_secret',\n    },\n    victoriametrics: {\n        DNS: 'http://fake.victoriametrics.url',\n        authKey: 'random-key',\n        username: 'p@ssW0rd',\n        password: 'user',\n        GCPExternalIpAddress: 'fake_external_ip_address',\n    },\n}\" \\\nmonitoring-central/manifests/yaml-generator.jsonnet | xargs -I{} sh -c 'cat {} | gojsontoyaml \u003e {}.yaml' -- {}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgitpod-io%2Fobservability","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgitpod-io%2Fobservability","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgitpod-io%2Fobservability/lists"}