Skip to content

gitpod-io/observability

Folders and files

NameName
Last commit message
Last commit date
Jan 5, 2023
Oct 10, 2023
Oct 10, 2023
Dec 9, 2022
Dec 15, 2022
Mar 21, 2023
Sep 2, 2022
Dec 15, 2022
Apr 21, 2025
Dec 1, 2022
Apr 21, 2025
Dec 9, 2022
Aug 16, 2022
Aug 11, 2022
Aug 29, 2022
Aug 11, 2022
Oct 19, 2021
Dec 15, 2022
Aug 11, 2022
Aug 15, 2022
Dec 9, 2022
Apr 21, 2025
Aug 11, 2022

Repository files navigation

Observability

Build Status Slack Gitpod ready-to-code

Set of Jsonnet files used to deploy customized monitoring-satellites and monitoring-centrals into different clusters.

Table of contents

Applications

Monitoring-satellite

Monitoring-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.

Components

To customize the stack, we make use of Jsonnet's external-variables feature. We expect one single external variable called config which is loaded and merged with monitoring-satellite to customize the stack.

We 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.

A minimal example would be:

jsonnet -c -J vendor -m monitoring-satellite/manifests \
--ext-code config="{
    namespace: 'monitoring-satellite',
    clusterName: 'fake-cluster',
}" \
monitoring-satellite/manifests/yaml-generator.jsonnet | xargs -I{} sh -c 'cat {} | gojsontoyaml > {}.yaml' -- {}

Monitoring-central

Components

To customize the stack, we make use of Jsonnet's external-variables feature. We expect one single external variable called config which is loaded and merged with monitoring-satellite to customize the stack.

We 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.

A minimal example would be:

jsonnet -c -J vendor -m monitoring-central/manifests \
--ext-code config="{
    namespace: 'monitoring-central',
    grafana: {
        nodePort: 32164,
        DNS: 'http://fake.grafana.url',
        GCPExternalIpAddress: 'fake_external_ip_address',
        IAPClientID: 'fakeIAP_ID',
        IAPClientSecret: 'fakeIAP_secret',
    },
    victoriametrics: {
        DNS: 'http://fake.victoriametrics.url',
        authKey: 'random-key',
        username: 'p@ssW0rd',
        password: 'user',
        GCPExternalIpAddress: 'fake_external_ip_address',
    },
}" \
monitoring-central/manifests/yaml-generator.jsonnet | xargs -I{} sh -c 'cat {} | gojsontoyaml > {}.yaml' -- {}