GreptimeTeam / GreptimeTeam/gtctl

Support to deploy prometheus stack for greptimedb observability

Open
#105 4 comments 1 reaction 1 assignee Claimed by @JetSquirrel View on GitHub
enhancement feature request
Dominant language
Go
Stars
37
Forks
13
PR merge metrics
No merged PRs in 30d

Description

## Background

When starting a greptimedb cluster, we always want to observe it through metrics and visualize them using Grafana. The [doc](https://docs.greptime.com/user-guide/operations/monitoring#export-metrics-to-prometheus) shows some deploying details:

1. Start the GreptimeDB;
2. Start the Prometheus(maybe we can run another greptimedb instance in the future);
3. Start the Grafana;
4. Import the Grafana [dashboard](https://github.com/GreptimeTeam/greptimedb/tree/main/grafana)(not in the doc);

It's not convenient to deploy Prometheus and Grafana separately.

In my opinion, maybe we can integrate the process into gtctl. For example, we can add the cli options `--deploy-prometheus` and `--deploy-grafana`:

```console
gtctl cluster create mydb \
--deploy-prometheus \
--deploy-grafana
```

After the deployment, we can open the URL link to observe the GreptimeDB.

## Challenges

We can **reuse** the code of deploying GreptimeDB to deploy the Prometheus stack. For example:

1. For bare-metal mode, we can download the binary of `prometheus` and `grafana` and then start the deployment;
2. For K8s mode, we can download the [chart](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack) to deploy the Prometheus stack;

However, we still need to:

1. Make the original code clean and have a good interface to reuse. Maybe it still has some refactoring work to do;
2. Don't make the deployment too complicated to use. The whole developer experience must be as smooth as we can;

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.