こんにちは、インテグレーション・エンジニアの尾宇江です。
聞き慣れないインテグレーション・エンジニアという職種ですが、 お客様がYappliを利用する際の「ポイントカードを表示したいけど、基幹システムの既存のAPIはYappliのポイントカード表示用APIとインターフェイスが異なっている…」というような個社毎の困りごとを解決する職種です。
つまり「お客様側のAPIの結果を、Yappliプラットフォームとして期待するインターフェイスに整える」という業務をやっております。
困り事
そのような業務をしていると…
- 株式会社 ◯◯様がテレビで紹介されて、アクセス集中してAPIが遅くなってアプリにも影響出てる
- 株式会社 □□様の新規会員登録のエラー率が高いけど、お客様側でなにか障害起きているのかしら?
といったように、お客様毎のエラー監視と調査が必要なケースが発生することになります。
しかし、お客様毎に社内の担当者が変わるために 「◯◯様でエラーが増えてる」→「◯◯様の担当者って誰だっけ?」という確認をすることになり、ちょっとしたストレスの貯まる運用になっていました。
ということで、「New RelicとSalesforceをZapierで繋いで、アラートを運用担当者にSlackでメンションしてみた」というブログエントリーです
New Relic
- New Relic Infrastructureのログ転送でFluent Bitの機能をフル活用するを参考にして アプリケーションログから、個別のアプリを区別できるapp_idという識別子をパースして抜き出すように設定
- 通知チャネル:アラート送信先の管理を参考にして、アプリケーションログを元にアラートを作成Slackに通知するように設定
- アラートのカスタム インシデントの説明:属性の使い方を参考にして、Slackへの通知に抜き出したapp_idが含まれるように設定
Salesforce
ヤプリでは案件の担当者などをSalesforceで管理しています。 そのため、抜き出したapp_idの担当が誰かはSalesforceを検索する必要があります。 ただ、SalesforceとSlackを直接連携させるのが大変だったので、検索用のスプレッドシートを作成しました。
- Google スプレッドシートで Salesforce データをインポート、編集、同期するを参考にして、スプレッドシートにSalesforceのデータが定期的に同期されるように設定
↑のアドオンは、GASを書く必要も無く、設定するだけでSalesforceとスプレッドシートが連動され、定期更新もできるので本当に便利です!
Zapier
New Relicからapp_idをSlackに通知できるようにして、さらにSalesforceの情報をスプシに連動したので、最後にZapierでそれらをつなぎます。
全体の流れは以下のようになります。
以下ややこしい部分を個別解説します
- 「2. Slack通知からapp_idを抜き出し」は、Formatter by Zapier で以下のような正規表現で抜き出し
- 「3. 連絡先の切り分け」は Formatterの結果のMatchedを利用
- 「5. app_idを小文字に変更」は New Relic と Salesforceでapp_idの大文字小文字が異なっていたための調整
- 「7. スプシに担当がいるかどうか」は「6. Salesforceの担当を検索」で app_id で Lookup Spreadsheet Rowした結果、SlackIDが取得できたかどうかが判定条件。
※ スプシからSlackIDを取得できたのでそのまま利用していますが、取得できない場合はメールアドレスからSlackIDを検索するなどの一工夫が必要になりそうです。 - 「13. 通知しない条件のチェック」は、アラートが解消されたときの通知に反応してZapierが発火するのを防ぐための処理。
まとめ
上記のような設定で、アラートが発生した際に、Salesforceに担当者が登録されていれば担当者に直接メンションが飛ぶようになりました。
※ p-duck 大好き
エンジニアが担当者を調べてメンションしていた以前のフローに比べて、格段にスムーズでストレスの無い監視ができるようになりました! 🎉
最後に
このように、ヤプリはアプリ開発・運用・分析をノーコード(プログラミング不要)で提供するアプリプラットフォームのYappliを開発している会社ですが、プラットフォームだからカスタマイズはしないというスタンスではなく、アプリを導入していただくための個社開発を行うこともあります。
そして、個社開発独自の問題についても課題解決に取り組む際にはこのような地道な改善が必要になるケースも多々あると感じております。
個社開発に関するノウハウを持っているエンジニアは絶賛募集中ですので、もし少しでもヤプリとYappliに興味をもった場合はぜひカジュアル面談の機会をいただけるとめちゃくちゃ嬉しいです。
※ ヤプリとYappliって何が違うの?って気になったというキッカケでも良いので、ぜひぜひ↓のカジュアル面談のページを見てみてください。