Carpe Diem

備忘録

2019-07-01から1ヶ月間の記事一覧

Prometheus でNodeのモニタリング

概要 christina04.hatenablog.com でNode exporterを使った基本的な監視方法を説明しましたが、今回は具体的にどんな項目をどう監視すべきかを説明します。 USEメソッド サーバの監視すべき項目の指標としてUSEメソッドというものがあります。 項目 説明 Uti…

GitHubを使った開発であると便利なツール

概要 GitHubを使った開発で使ってるツールを紹介していきます。 どれもあると無いとでは開発スピードが大きく変わります。 Fork GUIのGitクライアントです。 git-fork.com 以前はSourcetreeを使っていましたが管理するファイルが増えると非常に重くなったの…

Prometheus の監視対象を ServiceDiscovery で動的に設定する

概要 PrometheusはPull型の監視ツールであるため、監視対象がどれかを教えてあげなければいけません。 これまでの記事は全てstatic_configsを用いた静的な値で、スケールした時やサービスが増減した時に柔軟性がありません。 PrometheusはServiceDiscoveryを…

Prometheus でAPIサーバの監視【gRPC】

概要 前回はHTTPのAPIサーバの監視の仕方を説明しました。 christina04.hatenablog.com 今回はgRPCでのメトリクスの作り方を説明します。 環境 Prometheus 2.11.1 Golang 1.12.7 Grafana 6.2.5 prometheus/client_golang 1.0.0 go-grpc-prometheus 1.2.0 メ…

Prometheus でAPIサーバの監視【HTTP】

概要 前回は既存のexporterを利用せず、自分でメトリクスを生成する方法を説明しました。 christina04.hatenablog.com その方法を使って実際にAPIサーバ(HTTP)のメトリクスを生成し、可視化してみます。 環境 Ubuntu 18.04 Prometheus 2.11.1 Golang 1.12.7 …

Prometheus で独自メトリクスを用意する

概要 Metric types | Prometheus で定義されているようにPrometheusでは大きく4つのメトリクスタイプがあります。 Counter Gauge Summary Histogram 今回はGoのPrometheusクライアントライブラリを用いて各メトリクスを独自で用意する方法を説明します。 環…

Grafanaのパネルの作り方

概要 Prometheus + GrafanaではPromQLを使って柔軟なパネルが作成できる一方、作り方が複雑になりがちです。 今回は基本的なパネルの作り方を説明します。 環境 Grafana 6.2.5 Prometheus 2.11.1 パネル Grafanaのダッシュボードのパネルは大きく10あります…

Prometheus の基本的な使い方【Grafana】

概要 christina04.hatenablog.com の続きです。 今回はGrafanaを使ってメトリクスの可視化をします。 環境 Ubuntu 18.04 Prometheus 2.11.1 Grafana 6.2.5 構成 引き続きVMで行います。 VM名 IP Prometheus 192.168.33.10 Node 192.168.33.11 Grafana 192.16…

Prometheus の基本的な使い方【Node exporter】

概要 Pull型の監視サービスであるPrometheusの使い方を説明します。 環境 Prometheus 2.11.1 Node exporter 0.18.1 アーキテクチャ Prometheusのアーキテクチャはこの様になっています。 ref: Overview | Prometheus 大まかな特徴としては以下です。 Pull型(…

GPGでgitのcommitに署名する

概要 GitHubではMergeコミットなどで といったマークを見ます。これは署名されたcommitを示すものなのですが、 なぜ必要なのか どうやったら署名できるのか を今回説明します。 環境 macOS 10.14.5 Mojave gpg 2.2.10 なぜ署名が必要か? gitのコミットは co…

gRPC Unary Interceptorを複数設定した時の実行順序

概要 以前 christina04.hatenablog.com にてgRPCのUnary Interceptorの基本的な使い方を説明しました。 このInterceptorを複数設定したい時に使われるのがgo-grpc-middlewareの出している ChainUnaryServer ChainUnaryClient です。READMEにありますが、以下…

Go言語でプラグイン機構【RPC編】

概要 オブジェクト指向についてClean Architectureでは OOとは「ポリモーフィズムを使用することで、システムにあるすべてのソースコードの依存関係を絶対的に制御する能力」である。 これにより、アーキテクトは「プラグインアーキテクチャ」を作成できる。…