Upgrade to Pro — share decks privately, control downloads, hide ads and more …

食べログへのNewRelic導入の経緯と効果、運用効率化のための工夫

Yosuke Zusa
December 19, 2021

 食べログへのNewRelic導入の経緯と効果、運用効率化のための工夫

NRUG vol.1でLTしました。

Yosuke Zusa

December 19, 2021
Tweet

Other Decks in Programming

Transcript

  1. Copyright (c) Kakaku.com, Inc. All Rights Reserved. ⾷べログって? n今年 17

    年⽬になる、ガラケーの頃から続いているサービスです
  2. Copyright (c) Kakaku.com, Inc. All Rights Reserved. ⾃⼰紹介 図左 洋介

    (ずさ ようすけ) ⾷べログシステム本部 技術部 SREチーム マネージャー @Aramassa31 Qiita アドベントカレンダーもやっています! 🔎 ⾷べログ アドベントカレンダー 2021 🔎 https://qiita.com/advent-calendar/2021/tabelog
  3. Copyright (c) Kakaku.com, Inc. All Rights Reserved. クラスタ可視化領域の課題 ・Kubernetes Integration

    ・Prometheus Remote Write Integration のおかげでシンプルな Manifest になり、動作確認も楽に!! 導⼊で… 課題① Grafana & Prometheus & Thanos 運⽤コストの増⼤
  4. Copyright (c) Kakaku.com, Inc. All Rights Reserved. ⼿間のかかる仕組みで本番運⽤拡⼤するのは不安… ・Kibana ライクに

    データソースにフィルターをかけられる ⽬的の情報にフォーカスして、⼈に優しいグラフになった 導⼊で… 課題② OSSは使い勝⼿がいまいち (特にフィルター)
  5. Copyright (c) Kakaku.com, Inc. All Rights Reserved. This is やさしさ

    必要な情報だけをフィルターしてちゃんと⾒れる!!
  6. Copyright (c) Kakaku.com, Inc. All Rights Reserved. terraform Alert関連の設定は terraformを利⽤しています

    • 設定内容が明確化される • Mapを使って類似の設定を⼀括で投⼊できる • 設定に再現性が出る • Git管理されるので壊してもすぐに戻せる resource "newrelic_alert_policy" "cpu_usage_warning" { name = "${var.env_label} CPU使⽤状況 Warning" incident_preference = "PER_CONDITION_AND_TARGET" channel_ids = var.notify_channels.warning }
  7. Copyright (c) Kakaku.com, Inc. All Rights Reserved. terraform Alert関連の設定は terraformを利⽤しています

    • 設定内容が明確化される • Mapを使って類似の設定を⼀括で投⼊できる • 設定に再現性が出る • Git管理されるので壊してもすぐに戻せる resource "newrelic_nrql_alert_condition" "cpu_throttled" { for_each = var.target_containsers nrql { query = “SELECT * FROM … WHERE name = ‘${each.value}’; } }
  8. Copyright (c) Kakaku.com, Inc. All Rights Reserved. terraform Alert関連の設定は terraformを利⽤しています

    • 設定内容が明確化される • Mapを使って類似の設定を⼀括で投⼊できる • 設定に再現性が出る • Git管理されるので壊してもすぐに戻せる
  9. Copyright (c) Kakaku.com, Inc. All Rights Reserved. Base64 じゃないかコレ 【家訓】

    ⾒つけたBase64は全てデコードせよ ※ ※ドラクエの壺感覚。ちなみに図左は⾊の違う草むらもしらべます。
  10. Copyright (c) Kakaku.com, Inc. All Rights Reserved. Base64 じゃないかコレ 【家訓】

    ⾒つけたBase64は全てデコードせよ ※ "nerdletId": "dashboards.detail", "useDefaultTimeRange": false, "selectedPage": "MzI0MjY0NXxWSVp8REFTSEJPQVJE……..", "isTemplateEmpty": false, "filters": "(`k8s.clusterName` IN ('tb-development-external-1_20', 'tb-development-internal-1_20') AND `k8s.deploymentName` LIKE ‘%application%')", "entityGuid": "MzI0MjY0NXxWSVp8REFTSEJPQVJEfGRhO………" デコード結果
  11. Copyright (c) Kakaku.com, Inc. All Rights Reserved. ⾊々でてきた中⾝ 項⽬ 考察

    nerdletId 値 dashboards.detail 予想 ページの種別かな? useDefaultTimeRange 値 useDefaultTimeRange 予想 時間指定 ….? selectedPage 値 MzI0MjY0NXxWSVp8REFTSEJPQVJEfD…… 予想 ページの識別⼦ .. ? isTemplateEmpty 値 false 予想 ????? filters 値 (`k8s.clusterName` IN ….. 予想 NRQLっぽい検索条件 entityGuid 値 MzI0MjY0NXxWSVp8REFTSEJPQVJEfGRhOj……. 予想 ?????
  12. Copyright (c) Kakaku.com, Inc. All Rights Reserved. ⾊々でてきた中⾝ 項⽬ 考察

    nerdletId 値 dashboards.detail 予想 ページの種別かな? useDefaultTimeRange 値 useDefaultTimeRange 予想 時間指定 ….? selectedPage 値 MzI0MjY0NXxWSVp8REFTSEJPQVJEfDIyODI3NzE 予想 ページの識別⼦ .. ? isTemplateEmpty 値 false 予想 ????? filters 値 (`k8s.clusterName` IN ….. 予想 NRQLっぽい検索条件 entityGuid 値 MzI0MjY0NXxWSVp8REFTSEJPQVJEfGRhOjIxODA5MQ 予想 ????? コレ!?
  13. Copyright (c) Kakaku.com, Inc. All Rights Reserved. filters いじれば条件変更ができそう k8s.clusterName`

    IN ('tb-development-external-1_20', 'tb-development-internal-1_20’) AND `k8s.deploymentName` LIKE ‘%application%') → パラメータを変更して動作確認 (あのハッシュは整合性チェック⽤、とかだとOUTなので) → できた!!🎉
  14. Copyright (c) Kakaku.com, Inc. All Rights Reserved. NewRelic の導⼊したい機能 Synthetics

    (Minion) APM Pixie → 現在の外形監視よりも多くのエンドポイントを対象としたい → ⾯⽩そう。HTTPトラフィックの観測に利⽤してみたい。 → 個別のアプリケーションのパフォーマンス改善 → エンドポイントごとのSLI/SLOの簡易的な観測
  15. Copyright (c) Kakaku.com, Inc. All Rights Reserved. We are hiring!!!!

    n⼀緒に⾷べログのサービスを強くしましょう! nSRE以外の職種も幅広く募集中!!※ nhttps://hrmos.co/pages/kakakucom/jobs/1011020 ※FE, データサイエンス, テストエンジニアなど 『カカクコム 採⽤ エンジニア』で検索してください!!