2023年目標・AWS SAP取得・年間50冊は本を読む・年間100記事以上ブログ書く・カンファレンス登壇・体重75キロあたりを維持する— RyuichiWatanabe@gurasan (@ryuichi_1208) 2022年12月30日 今年の目標だった年間50冊の技術書読了を達成していた。これらの本の…
9月29日に行われたSRE NEXT 2023にスタッフで参加しましたので振り返りとかを書きました。 sre-next.dev SRE NEXTとは 信頼性に関するプラクティスに深い関心を持つエンジニアのためのカンファレンスです。 同じくコミュニティベースのSRE勉強会である「SRE …
www.infoq.com トランザクション分離レベルってREAD UNCOMMITTED、READ COMMITTED、REPEATABLE READ、SERIALIZABLEあたりは知っていたが実はそれ以外にも仕様があるらしい。ちなみに現場で使ったのはREAD COMMITTED、REPEATABLE READぐらい(ポスグレとMySQL…
dev.mysql.com この機能の嬉しいポイントはなんだろうって考えていた。機能の概要としてはトランザクション開始時点のIDを割り振ってそのID移行のレコードはスナップショットを読むというもの。複数テーブルから一貫したデータを読みたいケースってなんだろ…
分散トレースのサンプリングを見ているとhead baseやtail baseという言葉が出てくる。 前者はサンプリングするデータの一番最初にfilterにかけるという手法。トレースはランダムにサンプリングしたり特定のアトリビュートに基づいてサンプリングをする。トレ…
jaeger exporterなくなったの?ってびっくりしたがjaegerがotlpにnativeサポートしたためdeprecatedになっていたらしい。先週でた0.85.0で削除されたとのこと - `jaegerreceiver,jaegerremotesamplingextension`: Add featuregates to replace Thrift-gen wi…
大きかったり難しい課題をこなすとき、課題を細分化して簡単な課題に落とし込むことは、問題解決の基本の考えです。分割統治法の考えあたりが個人的にはとても参考になったりしました。この方法はタスク自体を細かく分けて進めやすくするだけでなく大きなタ…
Auroraにはenhanced binary logというのがあるのか。2PCの一部をストレージでやる。https://t.co/pE4Gmnw7mr— RyuichiWatanabe@gurasan (@ryuichi_1208) 2023年9月17日 Auroraの機能で2PCに対する最適化を行うというのがあった。そういえばbinlogとredoログ…
github.com go-redisを用いたレートリミットのうちleakey bucketを使った実装。rateLimit()でレートリミットを実現している。設定しているのはredis_rateでどれくらいの流量を通すかを決定している。 package main import ( "errors" "fmt" "log" "net/http"…
何かのプロジェクトに関わる際に専任の方が良いのか兼任で別のプロジェクトをやりながら兼任でやるのが良いのかについてのポエム。個人的には兼任的な働き方が良いと思っている。 専任か兼任か 兼任のメリットとして「多様な経験を得ることができる」という…
Clear Linuxは、Intelによって開発されたLinuxディストリビューションで、Clangでビルドされたカーネルを採用している。Intelプラットフォーム向けに最適化されており、高性能を重視しているらしい。
horovits.medium.com 先日公式リリースでサポートした話と次のリリースで入るって言ってたやつがリリースされていた。 github.com Dockerfile Docker Imageまだなかったのでバイナリを持ってくる必要があった。 FROM ubuntu:22.04 RUN apt-get update -y \ &…
何かを始めるのと同じようにに何かを辞めるのって難しいと感じる日々を過ごしている。仕事を通して実感したのだがこれは別に仕事に限らず日常生活においても言えることであると気づいた。サンクコストの呪縛というやつなのか。 www.nli-research.co.jp
pkg.go.dev Request.Context()を使うことでクライアントが切断したことをアプリケーションから検知することができる。一般的なhttpでの処理は以下のようになっている。そのうち5番まで処理が進んだ状態でそこから処理キャンセルをすることができるというので…
kubernetes.github.io ingress-nginxにはOpenTracingを入れれるオプションがあったので使ってみる 環境 kind ingressのデプロイ $ kubectl apply -f https://raw.githubusercontent.com/Kong/kubernetes-ingress-controller/master/deploy/single/all-in-one…
コネクションマイグレーションは新幹線乗るたびに早く普及して欲しいと思っている(通信環境安定化もして欲しい、、)https://t.co/N4OQxmGCD8— RyuichiWatanabe@gurasan (@ryuichi_1208) 2023年8月18日 こんな投稿があったりして手元で試すにはどうやれば良い…
kubebuilder kubernetes-sigs/kubebuilder Kubernetesを拡張するためのカスタムコントローラー/オペレーターを開発するためのフレームワーク client-go kubernetes/client-go KubernetesのAPIを実行するためのgoのモジュール controller-tools kubernetes-si…
open-telemetry/opentelemetry-collector OpenTelemetry Collectorのコアコードが置いてある open-telemetry/opentelemetry-collector-contrib コレクターの実験的およびベンダー固有の拡張機能が含まれている docker-composeとかサクッと試す場合はこっちを…
opentelemetry-collectorでCPU使用率やメモリ使用量を取ることもできるのでそちらを使ってみます。 hostmetricsreceiverを使う CPUやメモリなどを取るにはhostmetricsreceiverというreciverが用意されているのでそちらを使います。設定もシンプルで取りたい…
opentelemetry-goを使ってメトリクスをotlpで送信して標準出力に出すまでのメモです otel-collectorlのconfig fileをstdoutにすることで送信先をstdoutにすることができます。送信されてきたメトリクスをこれでプロセスの出力としてみることができます。 rec…
attributesprocessorというのがあるのでこちらを利用することで特定の属性を追加してデータの投入を行うことができる。 github.com processors: batch: # send_batch_size: 10000 # timeout: 10s attributes: actions: - key: hoge value: custom_value acti…
Jaegerとは Jaegerは、Uber Technologies社によって開発され、その後オープンソース化された分散トレーシングシステムです。Goで実装されています。CNCFの卒業プロジェクトで多くの環境で導入されている実績もあるようです。アプリケーションの内部の処理フ…
opentelemetry.io Propagators APIを用いることでサービスAのトレース情報をサービスBに伝播することができる。これができればJaegurとかから以下のように一つのトレースで複数サービスを見ることができる。 やり方 とても簡単で 後続のサービスへspanのCont…
probabilisticsamplerprocessorというプロセッサーがあるのでこちらを利用することで実現が可能。ただしlogsはalphaでtraceもbetaなので今後仕様が変わる可能性がある。 パイプラインは、データがコレクター内でたどるパスを定義するもの processors: probab…
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/…
create_before_destroy (bool) 既存のリソースが有った場合に、削除してから作成する prevent_destroy (bool) この値があるリソースを削除しようとするとエラーになる ignore_changes (list of strings) 実際のリソースとTerraform管理下のリソースの差分が…
kubectl explainを使うと、現在のコンテキストのバージョンに沿った情報を見ることができる。explainの次にはリソース名を指定する。ターミナルだけで完結できる機会が増えるはず。 $ kubectl explain service KIND: Service VERSION: v1 DESCRIPTION: Servi…
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…
github.com Packerはマシン・イメージの自動生成や管理をするコマンドライン・ツール。HashiCorp製のツールでGoで実装されている。Packer 1.5.0からHCLを対応したとのことで現在はこちらが推奨されていてちょっと古い記事だと気にして読む必要がある。 使い…