モダンなモニタリングに関する本が出ていたので読みました。単行本(ソフトカバー)この商品を含むブログを見るそこで、監視(モニタリング)の定義がされていました。監視とは、あるシステムやそのシステムのコンポーネントの振る舞いいや出力を観察し、チェックし続ける行為である。Platformでなかろうと、Kuberenetesクラスタをモニタリングをするのは簡単なことではありません。AgentというPod(コンテナ)を配置することによって、KuberenetesのHostを中心に、クラスタ全体のメトリクスを取得、可視化、そして探求をすることができます。Engineクラスタを監視します。APMを中心に、新しい機能があるので調査していきます。Agentをインストールする必要はなくて、API経由でもメトリクスを監視することができます。アジェンダ今回の記事は以下のアジェンダになっています。クラスタ作成からやるので、興味のあるセクションに飛んでもらっても大丈夫です。説明とグラフを一体化するアプリケーション固有のメトリクスを収集したいときまとめ参考文献DatadogについてDatadogについて、体系的にまとめようと思います。公式サイト以下のサイトが公式のサイトになります。www.datadoghq.com開発、運用する上で必要なドキュメントは以下の通りです。料金体系が用途によって分かれます。ユーザー体験のモニタリング変化が大きいので、直接公式ページで参照するのが安全かなと思います。www.datadoghq.comどの用途でも14日間のフリートライアルがあるので、導入を検討するときに試してみることができます。Agentと呼ばれるAgentはDaemonsetとして、各ノードに配置されます。Serverにデータを集めます。Kubernetesのアーキテクチャ略図APM用のメトリクスの取得方法はまた別なので、あとのセクションで解説をします。分解能Datadogでは、1秒の分解能でメトリクスのデータを保存います。Datadogを導入するこれより構築をしてみようと思います。GKEクラスタの作成クラスタを作成まず、今回の対象となるクラスタを作成します。1作成できたか、どうか確認します。asia-northeast1何か返ってきたら作成ができています。Agent自体を実際にデプロイします。Keyを取得する必要があります。「APIs」から新しく設定をすることができます。Keyを作成してコピーしてください。これの次のセクションのHelmのValueとして使用します。Agentをインストールします。説明することはないので説明を省きます。デプロイされると、以下のように確認をすることができます。試しにPodをとると、以下のようようになります。podsすると、以下のようになります。4mDatadogのサイトでは以下のようになっていて、ダッシュボードを確認できるようになります。Agentがデプロイすると進めるダッシュボードEventを確認Eventはダッシュボードを誰が作成したか、設定をどう買えたかなど、Datadog内でどのようなことが起きているかを監視できるものです。チームなどを運用しているときはオペレーションを確認したいときに便利です。Eventまとめると以下の表にできます。✅デフォルトでは、過去一時間のオペレーションが確認をすることができます。Dashboardを作成メトリクスを可視化するには、二つのダッシュボードがあります。2つのDashboardの違いを知るには、以下のドキュメントをご覧ください。List」でDashboard一覧を見ることができます。Dashboardのリストここの可視化方法は以下のリンクでご覧ください。Timeboardを作成トラブルシューティングや関係性を知るのに適しています。時系列に対して強いです。どのようなことができるのかというのは、実際に作成するとわかります。Screenboardを作成データや状態を可視化して、共有することが適しています。mapを選択したときに色んな可視化方法を設定できます。可視化方法Monitorを作成Prometheusでいうアラートにあたるものです。いくつも種類があり、ここに一覧を表示します。Monitorの種類Monitorにもいくつかあるので、今回はMetricsに注目しようと思います。ある閾値を超えたらアラートを発火させるもので、最も一般的。変化量がある閾値を超えたら発火するアラートです。アルゴリズムベースの異常検知機能。強い傾向のある繰り返しパターンを持ったメトリクスに適しています。アルゴリズムベースの異常検知機能。グループ内の特定の個体に他とは異なる挙動がみられた際に外れ値データ(Outlier)として検出することができます。何を以下のように最初は「どんなメトリクス」をMonitorするかを設定します。誰のFromで、誰のメトリクスを取得するのかを定義します。今選択しているのはクラスタを構成しているNodeです。次にアラートを設定をします。重要なのは閾値の設定です。次に誰に通知するか、どのように通知をするのかを設定します。テンプレートを使用することになり、ビルドイン変数を使うことができます。Infrastrutureを確認する大きく以下の種類に分けることができます。コンテナごとの情報を表示ProcessTagやコンテナ名でソートできるなど、非常に高機能です。Fluentdなどをはじめ、システム的なコンテナはいくつかあります。そのようなものは、ほとんど制御する機会がないので使いません。そのため、自分がデプロイしたコンテナを使いたい場合は左のImage名で検索できる箇所があるので、自分のImageにチェックをいれます。説明とグラフを一体化するMarkdownかグラフを書くことができる。Notebookのように、解析とNotebookの相性は非常に良いです。DatadogのNotebookもメトリクスを使うことによって使用することができるため、データを探求したいときに便利です。他にも用途としては障害や復旧手順の記述ドキュメント管理データを探求アプリケーション固有のメトリクスを収集したいときやっと本題です。DogStatDにカスタムメトリクスを送るDogStatsDを使うとアプリケーションのカスタムメトリクスを集計できます。別途、収集することができます。Deploymentとして別途、デプロイされるPodです。3.0以上に同胞されているメトリクス集約サーバです。DogStatsDは、StatsDプロトコルをサポートすると共に、datadog専用の機能にも対応するよう拡張されています。UDPポートを公開しているケースがあります。APIを使って、環境変数を指定してアクセスします。UDP...つまり、Valueファイルは以下の通りにします。trueDaemonSetsなので、必ず同Nodeにあります。同じPodであれば普段通り、開発環境と同様にアクセスしてください。DownwardAPIについて知らなければ、いかの記事を参照してください。www.1915keke.comDogSt​​atsDの主な機能は、所定の時間間隔(デフォルトでは10秒)に発生するデータポイントの情報を、単一のメトリクスに集計/集約することです。アプリケーション側のことは、ここでは詳しく解説しませんが、いくつもライブラリがあるので、使ってみてください。docs.datadoghq.comまとめDatadogは簡単に導入できる一方で、信頼性が高く、たかがDaemonset一つだけで済むので、非常に楽であると思いました。Nodeやコンテナの状態の可視化は、エンジニアとしては誰もが助かる要素である。Versionなのかをすぐ見つけられて、APIの更新があっても即座にフィードバックを受けることができる。バックエンドエンジニアも同様です。このような面で、費用対効果が直感的なのでSRE的には導入しやすく、開発体験を向上させることができると感じました。Datadogをしようと思います。最後まで、ありがとうございました。カオスだった平成最後の日に。アドラー心理学によれば、私たちは常に目的をもって行動し...2018-12-14CircleCIでSpinnakerのデプロイメントパイプラインをデプロイするどうも、もうすぐ大学卒業の@timtimtim1026です。»プロフィール学生エンジニア。忘れてしまうので備忘録です。flaskでServerlessにホストするTelepresence概論スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。