Diary of a Perpetual Student

Perpetual Student: A person who remains at university far beyond the normal period

テクノロジー

IPsec VPN実装であるLibreswanの状態を監視できるMackerelプラグイン

IPsec VPN実装であるLibreswanの状態をメトリックとして見られるようにするMackerelプラグインを作りました。 github.com strongSwanのものは先人が作っていましたが、Libreswanのものがなかったので自作した形です。 nonylene.hatenablog.jp 何が見られるか…

OTel Collectorでrunnによるシナリオテストの結果を投稿できるrunnreceiverを作りました

blog.arthur1.dev の続編です。今回はrunnによるシナリオテストの結果を投稿するツールをOpenTelemetry CollectorのReceiver (Scraper)として作ってみました。 リポジトリ 以下のリポジトリで id:arthur-1 によるOpenTelemetry Collectorの自作Component群を…

Go言語のloggerをDefault1つで済ませる方法:slog Handlerがcontextの中身を見てよしなにするパターン

先日、kamakura.go #6にて、「slog登場に伴うloggerの取り回し手法の見直し」という題で登壇しました。Go Conference 2024にこの内容でproposalを出していて落選してしまったのですが、kamakura.go #6のテーマ「昔のGo、今のGo」とピッタリだったので応募し…

OpenTelemetry MetricsのUnitに何を記述すべきか

OpenTelemetryにおいて、OTel CollectorのReceiverを開発するときやアプリケーションに計装をする際、MetricsのUnit(単位)にどんな文字列を指定すべきかよく分からなかったので調べてみました。 semconv OpenTelemetryにはSemantic Conventions(semconv)…

カンファレンス登壇者・スタッフにこそ知ってほしいマイクの使い方

オフラインの技術カンファレンス・イベントも徐々に復活し賑わいを見せつつある今日この頃、いかがお過ごしでしょうか。 多くの聴衆に等しく声を届けるための道具「マイク」はカンファレンスに欠かせないものとなっています。 普段はアプリケーションエンジ…

登壇ふりかえり:Hatena Engineer Seminar 個人開発回 & Scalaわいわい勉強会 #2

2024年に入って2件登壇しましたので、こちらのエントリで振り返っていきます。 Hatena Engineer Seminar #28 「技術習得を支え続けた私の個人開発ヒストリー」 Scalaわいわい勉強会 #2「見せ算をScalaで実装してみた」 Hatena Engineer Seminar #28 「技術習…

arm64の場合/proc/cpuinfoでCPUのモデル名が取得できない件とその対策

arm64では/proc/cpuinfoからCPUのモデル名を取得できない Linuxにはシステムの様子を知ることができる仮想ファイルがいくつかあります。そのうちの一つが/proc/cpuinfoで、その名の通りCPUの情報が以下のように閲覧できます。 $ cat /proc/cpuinfo processor…

Mackerelのメトリックプラグインをチェックプラグイン化するプラグイン

Mackerelのメトリックプラグインやチェックプラグインは、特定のフォーマットで標準出力に書き出すという要件さえ満たしていればどのように作ってもOKです。Go言語以外でも作れるし、なんならmackerel-agent.confにシェルスクリプトを書いても動きます。標準…

mackerel-agentが作るシステムメトリックグラフをOpenTelemetryで可能な限り再現する

mackerel-agentをコマンド1つでインストールすると、ホストが登録されMackerel上で以下のようにホストのシステムメトリックのグラフを閲覧することができます。最速便利。 さて、メトリックを収集する仕組みはOpenTelemetryという標準規格に統一されようとす…

PalworldのDedicated ServerをConoHa VPSで建てた

Palworldというゲームが2023/1/19に発売された。 www.pocketpair.jp このゲームはMinecraftのようにDedicated Serverを個人で建てて誰かと一緒のワールドで遊ぶことができるようだ。友人にサーバを建ててくれと依頼されたので構築することにした。 構築の流…

slog時代のGoではloggerをcontextで引きまわさなくて良い気がする

Goのloggerを引き回す際に皆さんはどのような手法を取っていますか? グローバル変数にloggerのインスタンスを入れておく contextにloggerのインスタンスを入れておく トレースIDなどを入れたloggerを適宜作ってcontextに格納する 構造体のフィールドにlogge…

Ubuntu・Debianで再起動が必要な際に知らせてくれるMackerelのチェックプラグイン

家でいくつかRaspberry Piを飼っておりそれぞれにUbuntuをインストールしているのですが、ログインした際に以下のように「System restart required」と言われることがあります。 Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-1044-raspi aarch64) (中略…

Go言語のクロスコンパイルを活かすDocker BuildxのBUILDPLATFORM・TARGETARCH

Go言語で作ったアプリケーションをコンテナイメージにするとき、以下のようにマルチステージビルドを利用したDockerfileを書くことが多いでしょう。 FROM golang:1.21-bookworm as builder WORKDIR /opt/app COPY go.mod go.sum ./ RUN go mod download COPY…

Advent Calendarを25日分続ける技術、あるいは物を発明し素早く作る技術

このエントリははてなエンジニアAdvent Calendar 2023の2024年1月8日の記事です。 昨日はid:handatさんのGitHubでパブリックリポジトリへの誤投稿を防ぐ拡張機能「GitHub Public Repo Alert」の紹介 - handatのdatファイルでした。 私id:arthur-1はサーバー…

Mackerelのカスタムダッシュボードにグラフアノテーションを表示する機能は如何にして生まれたか

arthur-1 Mackerel Advent Calendar 2023 マラソン25日目の記事です。いよいよラストのエントリとなりましたが、特別なことは書かずにこれまでと同じ調子で書きます。 カスタムダッシュボードにグラフアノテーションを表示できるようになりました! blog.art…

Mackerel Slackアプリを雑に作ってみる: unfurl編

arthur-1 Mackerel Advent Calendar 2023 マラソン24日目・およびSlack Japan Champions Network (JCN) アドベントカレンダー 2023 24日目の記事です。 MackerelとSlackのインテグレーション Mackerelの通知チャンネルとして、Slackを選択することができます…

仮説検証サイクルでユーザーの声を高速に叶える「キカク組」の取り組み

arthur-1 Mackerel Advent Calendar 2023 マラソン23日目の記事です。 「キカク組」の取り組みをMackerel Drink Upでお話ししました 2023年9月26日に行われたMackerel Drink Up #11で、私 id:arthur-1 が本エントリタイトルと同じ「仮説検証サイクルでユーザ…

Mackerelのメトリックと集約

arthur-1 Mackerel Advent Calendar 2023 マラソン22日目の記事です。 メトリックの時間方向の集約 Mackerelのグラフは表示範囲を広くしていくとメトリックの粒度がどんどん荒くなっていきます。これは、Mackerel内製の時系列データベースが、周囲の点の平均…

Argo CDでSyncが完了したらMackerelのグラフアノテーションに記録する(告知もあるよ!)

arthur-1 Mackerel Advent Calendar 2023 マラソン21日目の記事です。しばらく1日ずつ遅れますがよろしくお願いします。 Argo CDでdeployした記録をMackerelに残したい! Argo CDとは、KubernetesでGitOpsを実現する継続的デリバリーツールです。Gitのリモー…

自宅のIoT監視をMackerelで!

arthur-1 Mackerel Advent Calendar 2023 マラソン20日目の記事です。Mackerel Meetup #15 が盛況のうちに終わって運営としてはほっと一息。ということで一日遅れてしまっていますがやっていきます。 自宅のIoT機器の監視 Mackerelのdogfoodingの一環として…

mackerel-agentの起動条件

arthur-1 Mackerel Advent Calendar 2023 マラソン19日目の記事です。 本日はMackerel Meetup #15です!私は司会進行を務めさせていただきます。当日の申し込みも可能ですので、ぜひお越しください。 mackerelio.connpass.com Advent CalendarはMeetupの日に…

なぜMackerelのPromQLでは識別子にドットを使えるのか

arthur-1 Mackerel Advent Calendar 2023 マラソン18日目の記事です。明日はいよいよMackerel Meetup #15です!まだ間に合いますのでぜひお越しくださいね。 Mackerelのラベル対応メトリックはPromQLで自在に引ける Mackerelのラベル対応メトリック機能(現…

SendGrid Event Webhookをcloudwatch-logs-aggregatorでメトリック化する(後編)

arthur-1 Mackerel Advent Calendar 2023 マラソン17日目の記事です。(12/17に投稿予定でしたが都合がつかず本日12/18の投稿となります。) 以下の記事の後編として、cloudwatch-logs-aggregatorを使いたくなる用途やその未来、またcloudwatch-logs-aggrega…

SendGrid Event Webhookをcloudwatch-logs-aggregatorでメトリック化する(前編)

arthur-1 Mackerel Advent Calendar 2023 マラソン16日目の記事です。(12/16に投稿予定でしたが都合がつかず本日12/18の投稿となります。) cloudwatch-logs-aggregator Mackerelはcloudwatch-logs-aggregatorというモニタリングのための便利ツールを公開し…

Mackerel AzureインテグレーションSDK移行の裏側

arthur-1 Mackerel Advent Calendar 2023 マラソン15日目の記事です。(12/15に投稿予定でしたが都合がつかず本日12/17の投稿となります。) Azure SDKライブラリの更新が必要になった MackerelはAzureインテグレーションという機能を提供しています。我々が…

ドリルダウンの最初の一歩を支援するサービスマップを作りたい

arthur-1 Mackerel Advent Calendar 2023 マラソン14日目の記事です。 Mackerelにサービスマップ機能が欲しい 私はSRE NEXT 2023で当日スタッフを務めており、その関係でいくつかのセッションを拝聴させていただきました。 そのうち、Sansan株式会社様の「勘…

Mackerel Azure Database フレキシブルサーバー対応のここがすごい!

arthur-1 Mackerel Advent Calendar 2023 マラソン13日目の記事です。 Azure Database for MySQL・PostgreSQL フレキシブルサーバー対応 MackerelのAzureインテグレーションはDatabase for MySQL・PostgreSQLに対応していましたが、これまでサポートするデプ…

Mackerel Meetupに向けてファッションで気分を高める

arthur-1 Mackerel Advent Calendar 2023 マラソン12日目の記事です。 そろそろ折り返しが見える頃なので、気楽な雑談よりのエントリになっています。 2023年はコロナ禍を経た後にMackerelのリアルイベントが復活した年でした。その皮切りは7月11日に開催さ…

グラフウィジェット縦軸固定機能をどう活用するか

arthur-1 Mackerel Advent Calendar 2023 マラソン11日目の記事です。 グラフウィジェットの縦軸を特定の範囲で固定できるようになりました これまでのMackerelのグラフは縦方向の値域が自動で決まっていました。基本的には下端が0、上端がメトリックの最大…

Kubernetes上でOtel Collectorを動かし、OTLP ExporterでMackerelに投稿する

arthur-1 Mackerel Advent Calendar 2023 マラソン10日目の記事です。 MackerelはOpenTelemetry対応を進めています Mackerelはテレメトリデータを収集・エクスポートすることに関する標準規格であるOpenTelemetryへの対応を進めています。 mackerel.io その…