Grafana を利用したメトリクスの視覚化

Amazon Managed Service for Prometheus 内のワークスペースで収集されたメトリクスは、Grafana を使用して視覚化できます。Grafana v7.3.x は AWS 署名バージョン 4(Sigv4)認証をサポートする新機能が追加されました。ここでは、そのバージョンを使用します。

Helm チャートを使用してセルフマネージド型の Grafana をデプロイする

helm repo add grafana https://grafana.github.io/helm-charts
kubectl create ns grafana
helm install grafana-for-amp grafana/grafana -n grafana

Grafana サーバーを更新して AWS 署名プロキシを使用する

新しいファイルを作成し、 amp_query_override_values.yaml という名前を付けます。このファイルを使用して、Grafana デプロイを更新し、AWS 署名プロキシが認証に使用する Sigv4 プロトコルを有効にします。

serviceAccount:
    name: "amp-iamproxy-service-account"
    annotations:
        eks.amazonaws.com/role-arn: "${IAM_PROXY_PROMETHEUS_ROLE_ARN}"
grafana.ini:
  auth:
    sigv4_auth_enabled: true

Grafana 環境を更新するには、次のコマンドを実行します。

helm upgrade --install grafana-for-amp grafana/grafana -n grafana -f ./amp_query_override_values.yaml

Grafana コンソールにログインしてメトリクスを視覚化

文字列 GRAFANA_POD_NAME を、作成した実際の Grafana Pod 名に置き換えて、コマンドを実行します。

kubectl port-forward -n grafana pods/GRAFANA_POD_NAME 5001:3000

次に、http://localhost:5001 URL をブラウザで開いて、Grafana を表示し、 admin ユーザでログインします。

パスワードは Kubernetes シークレットから次のように取得できます。

kubectl get secrets grafana-for-amp -n grafana -o jsonpath='{.data.admin-password}'|base64 --decode

AMP データソースの設定

データソースのリストから Prometheus を選択し、URL フィールドで、AMP ワークスペースの詳細ページに表示されるエンドポイント(クエリー URL)を指定します。URL の最後に /api/v1/query 文字列は指定しません。認証に SigV4 を選択し、AWS リージョンを選択します。

リストからAMPワークスペースを選択し、Add data sources をクリックします。追加すると、AMPデータソースが SigV4 プロトコルで認証されていることがわかります。Grafana(7.3.5 以上)には AWS SigV4 プロキシがプラグインとして組み込まれており、これが利用可能になります。

データソースの名前を AMP-Datasource に変更してください。

AMP configuration

メトリクスのクエリ

セルフマネージド型の Grafana での視覚化は、Grafana 用 Amazon Managed Service for Grafana と同じです。 ここに移動し、指示に従ってメトリックスを視覚化します