Grafana †
CSVのダウンロード †
- グラフタイトルにカーソルを合わせ「v」をクリック -> Inspect > Data > Download CSV
データソース/ダッシュボード/Plugin/Alertをファイルで管理 †
データソース †
AWS S3 select:
データソースのリネーム †
- SQLiteを見る限り、データソースが固定文字列として各ダッシュボード、アラートに埋め込まれているため、GUI上からは一括リネームができない。
- データソースだけをリネームすると、各ダッシュボード、アラート側は変わらないためグラフが出なくなる。
- knoguchi/grafana-dash: A utility to update Grafana dashboards
- python3, pip3 install grafana_api, jq 1.6 が必要
git clone https://github.com/knoguchi/grafana-dash.git
cd grafana-dash/
pyenv local 3.6.8
python -V
Python 3.6.8
pip3 install grafana-api
jq -V
jq-1.6
vi grafana.rc
--
export GRAFANA_URL=http://192.168.xxx.xxx:3000
export GRAFANA_ADMIN_USER=admin
export GRAFANA_ADMIN_PASS=admin
export GRAFANA_ORG="Main Org."
--
source grafana.rc
- Datasource update script: このコマンドで出来そう
- alertの変更には非対応。データソースがあると失敗する。
- update-datasource.jq はjq 1.6以上が必要。macOSはジバン(shebang)にオプションを付与できるようだが、 Linux系では動かない。Linuxで動かすためには、
jq -Mf update-datasource.jq ...
ユーザ認証 †
小数点以下の表示桁数の指定 †
CloudWatch等のmetricsは浮動小数点が多すぎで見にくい場合がある。
- Grafana v6.5.2
- Graph > Legend Tab > Decimals
- X, Y軸それぞれに設定できる。
- Decimals:1 だと、小数点以下1桁を表示する。tableやHover tooltipの数値には効かないようだ。
トラブルシューティング †
ExpiredTokenException: tokenが切れる †
環境:
- Grafana v7.0.6
- EC2にGrafanaをインストールしている。
- EC2のIAM roleを作り、instance profileを設定している。
- IAM roleの有効期限は1時間。
現象:
- IAM roleの有効期限(1時間)より前に、「The security token included in the request is expired status code: 400, request id: ...」のようにtokenが切れて、グラフが表示されない。リロードしたり、ログアウトでは変わらない時がある。10分くらい待つと表示されるようになる。
ValidationError: 1 validation error detected: Value 'REMOVE_EMPTY(SEARCH('... †
- Grafana v6.5.2
- 原因: 検索に使う文字列が1024文字を超えている?
- 解決: 検索に使う文字列を短くする。
- Allでエラーが出る場合: Valiables > 変数名 > Custom all value: *
too many datapoints requested in query B. Please try to reduce the time range †
- Grafana v6.5.2
- 原因: 1回のクエリのデータポイント数を超えている
- 解決: 1回のクエリのデータポイント数を減らす
- QueryのPeriodを許容出来る範囲で伸ばす: 5m
- QueryのMin time intervalを許容出来る範囲で伸ばす: 5m (5分。300だと「Invalid interval string, expecting a number followed by one of "Mwdhmsy」エラーになるメトリクスもあった。HTTPCode_Backend_4XX等)
- Periodを5mにすると、sumの場合に1mと値が異なるので注意。
- 右上のタイムレンジを短くする
Grafana v6.5〜大きいクエリでエラーになる †
- Upgrading to v6.5
- GetMetricStatistics APIの代わりに、GetMetricData APIを使用するようになった。
- 1ダッシュボード1クエリを実行している。
- GetMetricData API の制限
- 条件式は1024文字まで。templatingで使う変数が長くなるとエラーになる。
- Allの場合は"*"を明示的に指定するのが良さそう
全画面スクリーンショット †
v6.5.2現在取れない。issueの最後に加工は必要だが取る方法が書いてある。
- chromeでgrafanaを開く。例: https://play.grafana.org/d/000000012/grafana-play-home?orgId=1 グラフのロードが完了したら、dev tools (F12)を開く
- 以下コマンドで高さの取得
document.querySelector('.react-grid-layout').style.height;
- 取得したheightを指定して実行
docker run --cap-add=SYS_ADMIN timoschwarzer/capture-website-cli capture-website \
--full-page \
--overwrite \
--output=screenshot.png \
--element='.react-grid-layout' \
--height=1056 \
'https://play.grafana.org/d/000000012/grafana-play-home?orgId=1' > screenshot.png
GitHub stats †
Graph上の0,nullのメトリクスを隠す †
メトリクスが多く、0やnullを非表示にしたい場合:
- Graph > Legend タブ
- Hide series
- With only nulls: nullを隠すにチェック
- With only zeros: 0 を隠すにチェック
Annotations: グラフ上にイベント発生日時、タグ、メッセージを残せる †
Scripted Dashboards: javascriptでカスタムダッシュボード作成 †
正規表現 †
- 「web01」と「web01-test」が混在していて、testを除外する。
/web(?!.*test)/
- 「test」と「example」を除外。
/^(?!.*test|.*example)/
Playlist: 一定時間毎にダッシュボードを切り替える †
ROW OPTIONS: 行単位のグループ化 †
- 同系統のメトリクスをまとめる。
- 行単位で隠しておける。クリックすると表示。複数系統のメトリクスを纏めると縦に長くなりがちなので、スクロールを減らせる。
Grafanaのバージョンによって、ROW OPTIONの位置が変わった。
- v5.x: layout managerが変わって、ROWがpanelに変わった。ROWがデフォルトで不用になった代わりに、行に余白があると自動でグラフの配置が詰められる。
- Add panel
- Row panelを選択
- Dashboard左下のAdd ROW
adminユーザのパスワードを忘れたら †
- DBに登録されるため、/etc/grafana/grafana.ini の admin_password を変えて、grafana-server を再起動しても反映されない。
sudo sqlite3 /var/lib/grafana/grafana.db
sqlite> update user set password = '59acf18b94d7eb0694c61e60ce44c110c7a683ac6a8f09580d626f90f4a242000746579358d77dd9e570e83fa24faa88a8a6', salt = 'F3FAxVm33R' where login = 'admin';
sqlite> .quit
Direct link rendered image: 画像へのリンクを取得 †
チャットに画像を直接貼りたい。
- 注意点
- 画像のURLにも認証が入るため、認証がONの場合見えない。
- グラフをクリック > Share
- Direct link rendered imageをクリックすると、画像取得できるURLが発行されるのでコピペ
- チャットアプリによっては末尾に画像の拡張子が必要なので「#.png」を付ける
サンプルテンプレート †
- monitoringartist/grafana-aws-cloudwatch-dashboards: 20+ Grafana dashboards for AWS CloudWatch metrics: EC2, Lambda, S3, ELB, EMR, EBS, SNS, SES, SQS, RDS, EFS, ElastiCache, Billing, API Gateway, VPN, ...
Elasticsearch †
バックアップ&リストア †
DBのバックアップを取るだけ。
sqlite3の場合 †
設定ファイル †
ログの出力先変更 †
CentOS 7で同じ内容のログが出ている場合、変更できる。
- mode
- console: /var/log/messages
- file: /var/log/grafana/grafana.log
- console, file: 両方に出力する
Templating: テンプレート化 †
Grafana 2.1からの機能。変数を定義して、変数に応じてグラフを切り替える事ができる。
変数自体は固定値だけでなく、データソースも指定できるため、動的に変更があっても、Grafana側の変更は不要にできる。
データソース自体も選択可能にできる。
単位 †
- サイズの表記が複数あるが、グラフのAxesタブ > Unit上の表記は同じ「bytes」なので注意。
- data (IEC) bytes: GiB表記。2進数での表示。通常コンピュータ上の表記はこちら
- data (Metric) bytes: GB表記。10進数での表示。
アップグレード †
インストール †