こんにちは、MackerelチームCREの id:kmuto です。新年度・新学期の気配ですね。新年度・新学期での未知は不安でもありワクワクでもありますが、システムやサービスが未知で何も見えない状況は困るだけなのでオブザーバビリティで解決していきましょう。では、今回のアップデート内容をお知らせいたします。
- すぐに始められるトレース投稿チュートリアルを用意しました
- トレーシング機能のドキュメントをMackerelのヘルプページで公開しました
- スパンの属性値が配列だったときの表示をわかりやすくしました
- トレース詳細画面からそのサービスに関するメトリックへのリンクを追加しました
- デプロイ環境を表す属性としてdeployment.environment.nameもサポートしました
- カスタムダッシュボードでグラフスライダーの表示有無を記憶するようになりました
- 注意喚起:MackerelのOSSリポジトリをコピーして悪意ある処理を加えた偽のリポジトリにご注意ください
- mkr plugin installでインストールしたプラグインの絶対パス指定が不要になりました
- PHP 8.4で導入されたメモリピーク情報をmackerel-plugin-php-fpmでメトリック化するようになりました
- MackerelのOSSのコンテナイメージをDocker Hub、GitHub Container Registry、Amazon ECRのレジストリでリリースしていきます
- 3月26日(水)に「わかった気になる分散トレーシング - OpenTelemetryでトレーシングに入門するハンズオン!」を開催します
すぐに始められるトレース投稿チュートリアルを用意しました
Mackerelのトレーシング機能は現在ベータ版として無料でご利用いただけますが、いざ何かトレースを投稿するといっても、どこから始めたらよいのか戸惑ってしまうかもしれません。
そこで、小さなサンプルコードを使ってMackerelへのトレース投稿を練習できる「チュートリアル」を用意しました。
Mackerelのメニューから「トレース」を選んだとき、トレースが何も投稿されていない場合は「トレースがありません」という画面になります。この中の「トレースを投稿する」ボタンをクリックすると、チュートリアル画面が開きます。
お好きなプログラミング言語を選び、手順に従ってお手元の環境で実行してみてください。これで、「tutorial」サービスに「Hello Mackerel!」というリクエスト名のトレースが送られます。
チュートリアルのプログラミング言語は本記事執筆時点でGo、PHP、Python、Rubyに対応しています。まずはこのチュートリアルでトレースを始めましょう。皆さんのアプリケーションに本格的に計装していくためのより詳しい設定へのリンクも、チュートリアルに掲載しています。
すでにトレースを投稿されている方は、https://mackerel.io/my/tracing/tutorialからチュートリアルを参照できます。
また、後述しますが分散トレーシングとMackerelのトレーシング機能の両方の理解が深まるハンズオンイベントも開催いたしますので、ぜひご参加ください。
トレーシング機能のドキュメントをMackerelのヘルプページで公開しました
Mackerelのトレーシング機能のドキュメントを、Mackerelのヘルプページで公開しました。
ヘルプのサイドメニューまたはヘルプトップページの「トレーシング」階層から機能概要や各言語の計装方法など各種のドキュメントを開けます。
前身となるVaxilaのドキュメントを移設しつつ、Mackerelの利用に合わせてアップデートしておりますので、ぜひご利用時の参考にしてください。
スパンの属性値が配列だったときの表示をわかりやすくしました
トレースのスパンの属性の値が配列だったとき、これまでは受け取ったデータ表現をそのまま使い、{"arrayValue":{"values":[{"stringValue":"curl"},{"stringValue":"https://google.com"}]}}
のように一見しただけではわかりにくい表示になっていました。
値が配列の場合は["curl","https://google.com"]
のようにわかりやすく表示するように改良しました。
トレース詳細画面からそのサービスに関するメトリックへのリンクを追加しました
前回の告知で「トレース詳細に投稿ホストの情報やトレースの周辺時刻で絞り込んだメトリックエクスプローラーへのリンクを表示するようになりました」という機能を紹介しましたが、現在表示しているトレースのサービス名と同じ名前を持つラベル付きメトリックへのリンクを提示するようになりました。
トレースとメトリックの両方のシグナルをMackerelに送っておくことで、アプリケーションのより深い洞察ができます。
デプロイ環境を表す属性としてdeployment.environment.nameもサポートしました
トレース機能内でデプロイ環境を表す属性として、既存のdeployment.environment
のほかに、semconv 1.27.0で導入されたdeployment.environment.name
もサポートしました。
カスタムダッシュボードでグラフスライダーの表示有無を記憶するようになりました
カスタムダッシュボードでは「移動」ボタンをクリックすることで、グラフ下部のスライダーの表示・非表示を切り替えられます。従来はカスタムダッシュボードを開き直したりリロードしたりするたびにこの切り替えがリセットされてしまっていたのですが、ブラウザで切り替えの状態を記憶するようになりました。
注意喚起:MackerelのOSSリポジトリをコピーして悪意ある処理を加えた偽のリポジトリにご注意ください
MackerelがGitHubで公開しているOSSリポジトリをコピーした上で、悪意ある処理を加えた偽のリポジトリが公開されていたことを確認しています。偽のリポジトリについてはGitHub社に情報を共有し、対応を進めています。過去のバージョンを含め公式に提供しているmackerel-agent等への影響はございませんのでご安心ください。
Mackerelが公開しているOSSリポジトリは、mackerelioオーガニゼーションまたはmackerelio-labsオーガニゼーションに所属します。
また、MackerelのX公式アカウントは @mackerelio_jp(日本語)および @mackerelio(英語)です。
mkr plugin installでインストールしたプラグインの絶対パス指定が不要になりました
Linux環境においてmkrコマンドを利用し mkr plugin install
で外部プラグインをインストールすると、/opt/mackerel-agent/plugins/bin
にプラグイン実行ファイルが配置されます。
そのプラグインをmackerel-agent.conf
で設定しようとしたとき、従来はパスが通っていないためcommand = ['/opt/mackerel-agent/plugins/bin/プラグイン実行ファイル名', ...]
のように絶対パスで指定する必要がありました。
mackerel-agentバージョン0.84.1で、プラグインのフォルダへのパスを通すように改良しました。これにより、command = ['プラグイン実行ファイル名', ...]
とパスを指定せずにプラグインを設定できます。
この修正はMackerelユーザーの@fujiwaraさんからコントリビュートをいただきました。ありがとうございます!
なお、Windowsにおいてはmkr plugin install
でインストールしたものはmackerel-agentのフォルダ内のplugins¥bin
フォルダに配置されるので、command = ["plugins\\bin\\プラグイン実行ファイル名", ...]
と相対パスで指定可能です。
PHP 8.4で導入されたメモリピーク情報をmackerel-plugin-php-fpmでメトリック化するようになりました
PHP 8.4でphp-fpmステータスページに「memory peak」というフィールドが追加され、PHPランタイムが起動して以来の最大メモリ使用量が示されるようになっています。
php-fpmステータスページの情報をメトリック化するプラグインmackerel-plugin-php-fpmで、このmemory peak値を「PHP-FPM Memory Peak」グラフとしてメトリック化するように改修しました。mackerel-agent-pluginsバージョン0.88.0以降でご利用いただけます。
memory peak値が0またはPHP 8.4より古いバージョンで存在しない場合、グラフは生成されません。
MackerelのOSSのコンテナイメージをDocker Hub、GitHub Container Registry、Amazon ECRのレジストリでリリースしていきます
MackerelはさまざまなOSSを開発・提供しています。コンテナ環境向けにはmackerel-container-agentやmackerel-sql-metric-collectorなどのイメージをコンテナレジストリで配布していますが、これまではその場所に一貫性がありませんでした。今後はDocker Hub、GitHub Container Registry(ghcr.io)(mackerelioおよびmackerelio-labs)、Amazon ECRの3つのレジストリに対して、以下のコンテナイメージをリリースしていきます(内容はレジストリ間で同一です)。
- mackerel-agent
- mkr
- mackerel-container-agent
- mackerel-sql-metric-collector
3月26日(水)に「わかった気になる分散トレーシング - OpenTelemetryでトレーシングに入門するハンズオン!」を開催します
トレーシング機能を試してみたいものの、はじめ方や活用の仕方がわからないという方向けに、はてな東京オフィスにてハンズオンを開催します。
💁 こんな人におすすめのハンズオンです
- Mackerelを使っているが分散トレーシング機能を使ったことがない
- 分散トレーシングが普段の業務にどう役立つか知りたい
- OpenTelemetryを触ってみたい
📝 ハンズオンを通して学べること
- トレーシングやOpenTelemetryの基礎がわかる
- Mackerelの分散トレーシング機能を実際に触ることでトレーシングへの理解が深まり、問題発見や解決の糸口を見つけられるようになる
2月に開催し好評だったイベントと同内容となりますので、前回参加できなかった方や、気になっていたけど参加しそびれていた方も、ぜひお気軽にご参加ください!
お申し込みは以下のイベントページをご覧ください。
わかった気になる分散トレーシング - OpenTelemetryでトレーシングに入門するハンズオン! - connpass