Mimirを使い、メトリクスをGrafanaに表示させる
要件
Mimirを使い、メトリクスをGrafanaに表示させる
タスク
Mimirを使い、メトリクスをGrafanaに表示させる
以下のようにgrafanaにメトリクスを表示させる
参考記事
▼prometheusとgrafanaの連携のやり方を動画で説明してくれる!
学べること
Mimirとgrafanaの連携の仕方
ハマりポイント
以下がhelmで作られるnginxのconfファイルだが、ここに書いてあるパスを参考にprometheusのremote_writeの設定や、grafanaのdatasourceの設定を行う
/etc/nginx $ cat nginx.conf
worker_processes 5; ## Default: 1
error_log /dev/stderr error;
pid /tmp/nginx.pid;
worker_rlimit_nofile 8192;
events {
worker_connections 4096; ## Default: 1024
}
http {
client_body_temp_path /tmp/client_temp;
proxy_temp_path /tmp/proxy_temp_path;
fastcgi_temp_path /tmp/fastcgi_temp;
uwsgi_temp_path /tmp/uwsgi_temp;
scgi_temp_path /tmp/scgi_temp;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] $status '
'"$request" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /dev/stderr main;
sendfile on;
tcp_nopush on;
resolver kube-dns.kube-system.svc.cluster.local;
# Ensure that X-Scope-OrgID is always present, default to the no_auth_tenant for backwards compatibility when multi-tenancy was turned off.
map $http_x_scope_orgid $ensured_x_scope_orgid {
default $http_x_scope_orgid;
"" "anonymous";
}
server {
listen 8080;
location = / {
return 200 'OK';
auth_basic off;
}
proxy_set_header X-Scope-OrgID $ensured_x_scope_orgid;
# Distributor endpoints
location /distributor {
set $distributor mimir-distributor-headless.default.svc.cluster.local;
proxy_pass http://$distributor:8080$request_uri;
}
location = /api/v1/push {
set $distributor mimir-distributor-headless.default.svc.cluster.local;
proxy_pass http://$distributor:8080$request_uri;
}
location /otlp/v1/metrics {
set $distributor mimir-distributor-headless.default.svc.cluster.local;
proxy_pass http://$distributor:8080$request_uri;
}
# Alertmanager endpoints
location /alertmanager {
set $alertmanager mimir-alertmanager-headless.default.svc.cluster.local;
proxy_pass http://$alertmanager:8080$request_uri;
}
location = /multitenant_alertmanager/status {
set $alertmanager mimir-alertmanager-headless.default.svc.cluster.local;
proxy_pass http://$alertmanager:8080$request_uri;
}
location = /api/v1/alerts {
set $alertmanager mimir-alertmanager-headless.default.svc.cluster.local;
proxy_pass http://$alertmanager:8080$request_uri;
}
# Ruler endpoints
location /prometheus/config/v1/rules {
set $ruler mimir-ruler.default.svc.cluster.local;
proxy_pass http://$ruler:8080$request_uri;
}
location /prometheus/api/v1/rules {
set $ruler mimir-ruler.default.svc.cluster.local;
proxy_pass http://$ruler:8080$request_uri;
}
location /prometheus/api/v1/alerts {
set $ruler mimir-ruler.default.svc.cluster.local;
proxy_pass http://$ruler:8080$request_uri;
}
location = /ruler/ring {
set $ruler mimir-ruler.default.svc.cluster.local;
proxy_pass http://$ruler:8080$request_uri;
}
# Rest of /prometheus goes to the query frontend
location /prometheus {
set $query_frontend mimir-query-frontend.default.svc.cluster.local;
proxy_pass http://$query_frontend:8080$request_uri;
}
# Buildinfo endpoint can go to any component
location = /api/v1/status/buildinfo {
set $query_frontend mimir-query-frontend.default.svc.cluster.local;
proxy_pass http://$query_frontend:8080$request_uri;
}
# Compactor endpoint for uploading blocks
location /api/v1/upload/block/ {
set $compactor mimir-compactor.default.svc.cluster.local;
proxy_pass http://$compactor:8080$request_uri;
}
}
}
▼参考例
grafana
datasources:
datasources.yaml:
apiVersion: 1
datasources:
- name: mimir
type: prometheus
url: http://mimir-nginx/prometheus
prometheus
remote_write:
# メトリクスの保存先mimirのsvcのエンドポイント
- url: http://ac2e62c7ec03b4959b08442ade6ea5df-1997248699.ap-northeast-1.elb.amazonaws.com/api/v1/push
remote_timeout: 30s
関連タグ
この記事が気に入ったらサポートをしてみませんか?