サイバーエージェントの社内エンジニアカンファレンス「CA BASE CAMP 2021」で発表した資料です。
サイバーエージェントの社内エンジニアカンファレンス「CA BASE CAMP 2021」で発表した資料です。
エンジニアの島です。AI戦略室でバックエンドシステムの開発をしています。 本記事ではPrometheusを利用して、独自のメトリクスを計測することで監視を効率よく行えることを紹介します。 背景 チームで作っているもの 社内共通基盤の活用 効果的な監視で得られるもの 問題の予兆に気付けるようになる 問題の原因特定につながる 時系列での傾向を把握できる Prometheusとは 思想 メトリクスの公開 custom metricsを追加しよう Prometheusで監視しよう custom metricsで計測すると嬉しいもの 外部IOに関して 内部状態に関して 外部起因ではないアプリケーションのエラーの数 有効データのうち、モデルが値を返せている割合 機械学習モデルのスコア(histogramを利用) そのほか 終わりに 最後に宣伝 背景 チームで作っているもの LIFULLのAIチームでは
Prometehus, Grafanaでモニタリングできるのはもうわかったので監視をどうするかというとAlertmanagerを使うことになります。 Prometehus本体に比べればAlertmanagerはまだ成熟してないと思うけど、使う価値は十分にあると個人的にあると思ってます。 その理由は2つあって、Prometehusで収集したメトリクスに対してアラートを設定できることと、アラート通知をまとめることができるということ。 1番目はまあわかりますよね。GangliaでモニタリングしてNagiosで監視とかだとツールが分かれているのでやりづらい。Gangliaでモニタリング結果に対してNagiosでアラート通知できないからね。 2番目が今日最も書きたかったこと。 監視はナイーブにやると、いったんアラートがなったときに対処しない限り延々とアラートがなり続けることになります。 例えばあるプ
こんにちは @hatappi です 今回はCircleCIネタです 以前CircleCIを使って下記のようなものを作っていました qiita.com 何かとCircleCIにはお世話になってます 業務などでER図やテーブル定義書などを書く機会あると思います Excel? Google Sheets? MySQL Workbench? Cacoo?(html5化待ち遠しい) 色んな手段がありますが基本はユーザーがメンテしてあげないと腐ります 😇 最初は頑張って更新するぞ!!と用意しても、どこかのタイミングで更新しなくなって中途半端な状態になり、それを新しく入った人が見て混乱するみたいなことがありました もう人が更新するのはやめたい 私はRailsを使っているのでmigrationしてテーブルを作成したりしているので、そのタイミングで勝手に作ってほしい データベースはMySQLです gemで
はじめに Ansible には標準で「dig」という名前解決ができる lookup plugin があることを知りました。 Lookups — Ansible Documentation 基本的な書式は lookup('dig', 'example.com.') です。 公式ドキュメントに実行例がなかったので試してみることにします。 準備 内部で dnspython というパッケージを利用するのであらかじめインストールしておきます。 pip install dnspython なお、dnspython をインストールしていない状態で playbook を実行すると以下のエラーが表示されます。 fatal: [localhost]: FAILED! => {"failed": true, "msg": "An unhandled exception occurred while runnin
itamae-goを作り直してitamae-mrubyを作った 先週Goからmrubyを使ってRubyなしでItamaeレシピを実行できる「itamae-go」を作ったんだけど、全く同じコンセプトの、RubyなしでItamaeレシピを実行できる「itamae-mruby」を作った。 github.com itamae-goの問題点 mrubyは組み込み言語だしこれは本来想定された使い方であり、go-mrubyの実用的な例として普通に作ってよかったと思っているけど、ことItamaeを実装することに関しては以下のような問題があった。 レシピを読む部分以外をGoで実装していたので、specinfraのコードの移植に手間がかかる 主にstandaloneなバイナリを吐く目的にGoが使われているが、mruby-cliでもできるのでGoを使っているメリットがそれほどなく、2つの言語をブリッジするコード
Goとmrubyを使ってitamae-goを作った github.com Pokemon Goが流行っていたので流行に乗じてItamae Goを作った。 というのは冗談で、手元の開発環境のセットアップにitamaeを使っているのだけど、まっさらな環境でitamaeを実行したい時にRubyやitamaeをどういれるかについて考えるのが面倒なので、Rubyなしで実行できるitamaeを作った。Goで実装し、mrubyでレシピを読むことによりRubyなしでの実行を実現した。 インストール方法 Releasesにバイナリを置いてあるのでこれをダウンロードする。基本的には環境セットアップ用のシェルスクリプトからこれをcurlなりwgetなりでダウンロードして使うことを想定している。 なんか動かなかったらgit cloneしてmakeすればその環境用のバイナリが作れるはず。 *1 使い方 普通にita
Cher Serverの構築 以下の公式手順を参考に、Chef Server Ver.11のパッケージをインストールし、初期構築を行います。 ここでChef Serverとなる環境はhoge01.sakura.ne.jpとします。 Install Chef Server 11.x — Chef Docs パッケージの取得 Chef Ver.11からはRHEL系OS用にRPMパッケージが公開されているため、以下のページからRPMパッケージを取得できます。 Install Chef | Opscode ここでは最新バージョンのChef-Server 11.0.8を取得します。 # wget https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-server-11.0.8-1.el6.x86_64.rpm インストー
DatadogはMuninとGrowthForecastを合わせたようなモニタリングサービスで、主に『エージェントをインストールしてサーバ情報をグラフ化』と『APIでmetricを送信してグラフ化』をしてくれます。*1 fluentdと相性が良さそうなので、アクセスログをDataDogに投げたりするためのプラグイン(とパッチ)を書きました。 fluent-plugin-datadog Pull Request 修正版gem ※2/22 17:19注) fluent-plugin-ddをリリースしました fluent-plugin-unit-time-filter 参考: http://so-wh.at/entry/2014/02/08/fluent-plugin-unit-time-filter ※2/09 20:45注) 0.1.0をリリースしました ※2/17 14:26注) flue
2013-12-12 単純な環境構築を知る -Chefでiptables書き換え- Chef インフラ Chefの使い方は今までの記事でなんとなく使えるようになった気がするので、今回は実際に使えそうな環境構築をやってみたいと思う。やりたいことは apacheインストール iptablesを書き換える 公開 という感じだ。 apacheインストール まずapacheを入れたい。 本来はaliasだとか設定しなきゃいけないものはいろいろあると思うが、今回は単純にインストールして設定はデフォルトのままで。 となるとrecipeは簡単。 package "httpd" do action :install end service "httpd" do supports :status => true, :restart => true, :reload => true action [ :e
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く