地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

2023-01-01から1年間の記事一覧

opentelemetry-goを使ってメトリクスを送信する

opentelemetry-goを使ってメトリクスをotlpで送信して標準出力に出すまでのメモです otel-collectorlのconfig fileをstdoutにすることで送信先をstdoutにすることができます。送信されてきたメトリクスをこれでプロセスの出力としてみることができます。 rec…

otel-collectorのprocessorでattributesを追加する

attributesprocessorというのがあるのでこちらを利用することで特定の属性を追加してデータの投入を行うことができる。 github.com processors: batch: # send_batch_size: 10000 # timeout: 10s attributes: actions: - key: hoge value: custom_value acti…

Blackbox exporterをOpenTelemetryコレクターでscrapeする

【Jaeger】入門する

Jaegerとは Jaegerは、Uber Technologies社によって開発され、その後オープンソース化された分散トレーシングシステムです。Goで実装されています。CNCFの卒業プロジェクトで多くの環境で導入されている実績もあるようです。アプリケーションの内部の処理フ…

複数サービスでトレースしたい

opentelemetry.io Propagators APIを用いることでサービスAのトレース情報をサービスBに伝播することができる。これができればJaegurとかから以下のように一つのトレースで複数サービスを見ることができる。 やり方 とても簡単で 後続のサービスへspanのCont…

opentelemetry-collectorでサンプリングレートを指定したい

probabilisticsamplerprocessorというプロセッサーがあるのでこちらを利用することで実現が可能。ただしlogsはalphaでtraceもbetaなので今後仕様が変わる可能性がある。 パイプラインは、データがコレクター内でたどるパスを定義するもの processors: probab…

OTEL AWSメモ

aws-sdk-go-v2を使ったサンプルに送信先をJaguarにした例 github.com v2だとめっちゃ楽に実装できて便利。ちなみにv1だとちょっとだけ工夫が必要な模様。 package main import ( "context" "fmt" "log" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/…

terraform lifecycleメモ

create_before_destroy (bool) 既存のリソースが有った場合に、削除してから作成する prevent_destroy (bool) この値があるリソースを削除しようとするとエラーになる ignore_changes (list of strings) 実際のリソースとTerraform管理下のリソースの差分が…

kubectl explain

kubectl explainを使うと、現在のコンテキストのバージョンに沿った情報を見ることができる。explainの次にはリソース名を指定する。ターミナルだけで完結できる機会が増えるはず。 $ kubectl explain service KIND: Service VERSION: v1 DESCRIPTION: Servi…

kustomizeでlistに任意の項目を足す

nginxのpodに443と8443のポートを足したい時のkustomizeの書き方 apiVersion: apps/v1 kind: Pod metadata: name: app spec: containers: - name: app image: nginx:latest ports: - name: http containerPort: 80 - op: add path: /spec/containers/0/ports…

Packerへ入門する

github.com Packerはマシン・イメージの自動生成や管理をするコマンドライン・ツール。HashiCorp製のツールでGoで実装されている。Packer 1.5.0からHCLを対応したとのことで現在はこちらが推奨されていてちょっと古い記事だと気にして読む必要がある。 使い…

【AWS】Lambda X-Rayを使ってみる

docs.aws.amazon.com Lambdaで実行途中のtraceをX-Rayに投稿することでトレーシングを行うことができる。 package main import ( "context" "fmt" "io/ioutil" "github.com/aws/aws-lambda-go/lambda" "github.com/aws/aws-xray-sdk-go/xray" "golang.org/x/…

Fern.vimのメモ

コマンド 動作 l フォルダを開く h フォルダを閉じる Return フォルダに潜る Ctr-h フォルダを1階層上に戻る o ファイル若しくはフォルダを開く ? コマンドのヘルプを開く N 新しいファイルを作成 K 新しいディレクトリを作成

kindとhelmで遊ぶ

kind $ cat <

割り込みについて考える Part2

SRE本でSREの運用負荷には3種類の割り込みが挙げられている「ページ」「チケット」「運用負荷」の3つである。ページはプロダクションや近しい環境で非常事態が発生した時に起きる割り込み。アラートが発生してオンコールになったりした際に発生する。チケッ…

秋田でハチ公にあった

1泊2日で秋田の大館市に行ってきた。大館に秋田犬博物館みたいなのがあったのだがそこにハチ公の像がいて???となった。どうやらハチ公は秋田の大館市で生まれて東京に連れて行かれて育てられたという話らしい。 hachi100.visitakita.com 渋谷駅のシンボルと…

AWS LocalStackのメモ

AWS LocalStackは、AWSのクラウドサービスをローカル環境でエミュレートするためのオープンソースツール。AWSの機能を利用するアプリケーションやマイクロサービスを開発する際に、クラウド上でのテストやデバッグを容易にすることができるようになる。実際…

大塚駅と路面電車

人生初の路面電車に乗った。都電荒川線というやつらしい。 www.kotsu.metro.tokyo.jp 大塚駅のアパホテルに泊まっていて出たら路面を電車が走っていてどこにいくのかも分からないが飛び乗ってしまった。そしたら30秒くらいしたら普通の線路に戻ってしまって…

変化しないものはゆっくり死んでいくのか

以下のスライドを久々に読んでいたが今の自分に色々と刺さる内容が多くて面白かった。 speakerdeck.com なぜシステムを継続改善していくのか 実装当時に最適解と考えられていたものが時間経過とともに最適とは評価され得なくなるから 現状サービスがうまく動…

dnsdistでDoHを扱う

DoHの用途 DNS over HTTPS(DoH)は、従来のDNSプロトコル(UDPやTCP)を使用せずに、HTTPやHTTPSを介してDNSクエリとレスポンスを暗号化して送信するプロトコルです。DoHは以下のような用途で使用されます。 dnsdist.org dnsdistを使えば自前でDoHやDoTのサ…

dnsdistに入門する

github.com dnsdistは、高パフォーマンスで柔軟なDNSプロキシとロードバランサです。PowerDNSプロジェクトによって開発され、オープンソースで利用可能です。dnsdistは、DNSトラフィックの制御、トラフィックの分散、セキュリティの向上など、さまざまな目的…

UDP関連のカーネルパラメータメモ

net.ipv4.udp_early_demux UDPの早期デマルチプレクサ(early demultiplexer)を有効にする net.ipv4.udp_l3mdev_accept = 0 レイヤー3マルチデバイス(l3mdev)でのUDP受信を無効にする net.ipv4.udp_mem = 185844 247793 371688 UDPメモリ使用量の制御(最…

デバッグ用のMySQL

FROM ubuntu:trusty as builder RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install build-essential cmake wget curl libncurses5-dev -y -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' && \ wget htt…

EC2インスタンスのWebサービスへのサクセスをCloudFrontだけに限定する方法

EC2インスタンスのセキュリティグループを設定する EC2インスタンスのセキュリティグループに、CloudFrontからのアクセスを許可するインバウンドルールを追加する インバウンドルールでのソースIPアドレスを、CloudFrontのオリジンのIPレンジに制限する。こ…

iterm2にコピーモードがあった

ebc-2in2crc.hatenablog.jp 全然知らなかったがこんな機能があったとは。iterm2は人生初Macでずっと使っているのでこんな便利機能があるとは...tmuxでいいじゃんというのは置いておいても便利なので使っていこう。

14インチ MBPが軽すぎてすごい

会社のPCが16インチから14インチになった。2.1キロくらいから1.6キロまで軽くなってすごい持ち運びがしやすくなってよい。仕事で東京に行く機会が結構あるので軽ければ軽いほどよい。 1泊とか2泊とかするような出張でも極限まで軽くしていきたいのでリュック…

MySQLのOOM調査に使ったスクリプト

#!/bin/bash while true; do date ps aux | grep [m]ysqld echo "####"; mysql -e "select * from sys.memory_global_by_current_bytes where current_alloc LIKE '%GiB%';" echo "####"; mysql -e "select * from sys.memory_by_thread_by_current_bytes wh…

外構に手を出し始めた

作業部屋、寝室、リビング、和室と自分が使ってる部屋のインテリアはなんとなく好みにしたのでやることがなくなってしまった。次はエクステリアということでやり始める。 ということで第一弾はカーゲートと門扉を付けてみた。完全にオープン外構になっていて…

Go ConferenceでLTしてきた

gocon.jp LTをしてきた。2021年にチームでGoをやっていくぞと言ってこれまでやってきた話をした。TLの盛り上がり見てるだけでも楽しくてとても良い日だなと運営の方にとても感謝。来年もネタ作ってプロポーザル出したい。 気になったセッション 「Go Style G…

ブログを書く機会が減った

ブログを書く機会が減った。直近だと分かりやすく減っている。今まで書くネタといえばミドルウェアのソースを読んでみたとか技術の入門してみた記事が多かったがその辺はChatGPTに聞けば大体答えてくれるという感じなったから。沸くように出てきたネタもChat…