Kitaarashi共有するFacebookTwitterEmailLinkedIn皆さん、こんにちは。今回のTipsはHerokuアプリケーションを使う上でなくてはならないアドオンであるPapertrailを取り上げてみたいと思います。PapertrailはHerokuアプリが出力するログを管理するアドオンであり、データを保存するためのディスクを持たないHerokuはこのPapertrailなしではログを保持・保管することができません。Herokuサーバー上でのテストが始まるITフェーズ以降では、Papertrailを使ってログを参照する頻度は高いので、しっかりと使いこなす必要があると言えます。Papertrailに出力されるログの種類Papertrailに出力されるログはアプリケーションが出力するログだけではなく、Heroku上の様々なコンポーネントがここにログを出力します。代表的なものを下記に示します。Dnyo自体の稼働状況を示すログ通常、Papertrailのログには上記に示したような各コンポーネントのログが混在する状態で出力されます。そのため、効率的にログを参照するためには少し工夫する必要があります。タイムゾーンの指定デフォルトでは画面に表示されるログの時間はJST(日本時間)ではありません。Papertrailにはユーザーのタイムゾーンにより自動的に表示時間を調整してくれる機能がありますので、必ず設定するようにして下さい(Herokuアプリごとの設定になります)。選んで保存して下さい。ログの検索Papertrailのログは画面上から簡単にキーワードを使って検索し絞り込むことができます。出力したログのみが時系列に表示されます。キーワードのシンタックスは以下のようになります。大文字・小文字は区別されないことに注意して下さい。複数のキーワードをAND条件で繋ぎたい場合は、スペースで区切ります。heroku/postgresキーワードにスペースを含めたい場合はダブルクォーテーションで囲みます。app/web特定のキーワードを含めたくない場合は、文字列の前にーを付けます。-200予め準備されたキーワードを選択リストから選ぶこともできます。カスタムキーワードをこのリストに登録することも可能です。Dyno上へのデプロイ状況、環境変数の変更など。Dyno上のアプリケーションが出力するログPapertrailには大量のログが出力されるため、検索による絞り込みだけでは目的とするログをうまく参照できません。そんな時に役立つのが特定の時間帯のログを表示する機能です。画面下の時計アイコンのあるボタンをクリックして表示させたい時間を指定します。タイムゾーンが指定してあれば、日本時間を入力できます。使うのは、検索により目的のログが出力された時間を特定し、その時間帯のログを上記機能を使って表示する方法です。大量のログが出力されると目的のログを見つけることが面倒になりますので、この時間指定の機能は是非覚えておいて下さい。ログのフィルタリング出力されるログそのものを抑止するフィルタリング機能も提供されています。”出力する必要なし”と判断したログについては、特定のキーワードや正規表現を使って出力させないようにできます。この方法ですとログ容量そのものを抑えることができますので、契約するPapertrailのプランにも影響します。ボタンを押下して表示される画面から行います。SmpleUrlHandlerMappingが含まれるログを出力しない例]設定の詳細についてはこちらを参照して下さい。[Options]から切り替え可能)。1つのログが1行に省略されて表示されるので見やすくなります。この状態だと各行をクリックすると省略されていた部分が表示されます。アラートの送信ログを目視で監視することは現実的ではないため、Papertrailには特定のキーワードにマッチするログ出力を定期的にアラートとしてユーザーに送信する機能が提供されています。下記のように設定します。キーワードを指定してログを検索します。Search"ボタンを押します。通知を行う媒体を選択します。Alert]ボタンを押します。下記のようなアラートメールが定期的にPapertrailから送信されます。アーカイブログの取得Papertrail上に保管されたログは各プランで決められた日数しか画面から検索することはできません(ログのボリュームによりアーカイブされるタイミングは変わります。本番環境だとログ量が増えるため数日程度)。期限を過ぎたログはアーカイブとして一定期間保管され、ダウンロードして参照することができます。選択するとアーカイブダウンロード用の画面が開きますが、ここではファイルごとにダウンロードしなければなりません。1日で、ログの量が多いと1時間単位となり、アーカイブされるログの数も大量になります。残念ながら画面からはファイルを一括してダウンロードすることはできませんが、コマンド操作であればまとめてダウンロードできます。Windowsの場合はCygwinなどのUnix環境から実行する)。Tokenを記録します。コマンドの実行ファイルを保存するフォルダを作成し、そのフォルダをカレントフォルダとしてコマンドウィンドウを立ち上げて、下記のコマンドを実行します。https://papertrailapp.com/api/v1/archives/{}/downloadログが1日単位で保管されているか、1時間単位で保管されているかで、実行するコマンドの書式が異なります。##には取得するファイル数を指定して下さい。1日単位で保存されている場合に60を指定すると、今日から遡って60日分(当日分はアーカイブされていないので除く)のファイルがgzip形式の圧縮ファイルとしてダウンロードされます。ダウンロードされた大量の.gzファイルは下記のコマンドで一括解凍できます。ログの共有とグルーピング通常、1つのHerokuアプリに1つのPapertrailの契約(subscription)を紐付けますが、複数のアプリで1つの契約を共有することもできます。app」を選び、Herokuアプリを選択します。共有しているアプリは「Dashboard」から確認することができます。共有しているアプリの中から一部のアプリのログのみを表示させたい場合は、”グループ”機能を使用します(画面右のMyGroupに登録済みのグループが表示されます)。何ステップか必要になります。モバイル環境でネットワークが細い時などは、何度もクリックするのはちょっと面倒だなと思ってしまうこともあります。そこで、コマンドを使ってPapertrailのGUIを画面を一発で起動する方法を最後に紹介しておきます。上記のコマンドでブラウザが開き、当該アプリのログ画面が開きます。いかがでしたでしょうか。たかがログ管理とは言えないほど、様々な機能が提供されているPapertrailです。Herokuの監視および障害解析時には欠かせないツールですので、しっかりと使いこなして効率的にログを参照できるようにして下さい。著者についてアピリオのシニアコンサルとしてクラウドの世界に身を投じてはや5年あまり。プロジェクトでの立場に応じて、アーキテクト、リーダー、デベロッパーと様々なロールの仕事に携わっています。新しいサービスと技術が登場するSalesforceの世界はエンジニアとして常に刺激を持ち続けられるエリアであり、2019年からはMuleSoftソリューションの起ち上げに関わっています。Connectを利用してコーディングをせず、Salesforce外のシステムにあるデータを、外部オブジェクトとしてSalesforceにとりこみ、利用する方法について説明します。アドオンのBlazeMeterをご紹介したいと思います。クラウドの世界においても構築したWebアプリケーションに対する負荷テストは従来と同様に重要なものです。入門編ブログをシリーズに渡ってお届けします。開発の基本から簡単な応用テクニックまでを網羅します。Platform」についてご紹介します。主導のシステム連携をサポートするための幅広い機能が単一のプラットフォーム上で提供されています。デプロイ作業について説明します。実装について説明しました。デプロイ作業について説明します。変換例を紹介しようと思います。変数や関数の利用、典型的な変換パターンを例を交えて説明します。使ったブラウザ環境でのMuleアプリケーションの開発についてご紹介します。Muleアプリケーションを作成することに比べて、とても手軽にアプリケーションを開発できます。して提供されている単体テスト用のフレームワークです。同じようにテストスイートを実行することで単体テストを自動実行できます。開発におけるテストについて考えていきます。つのレベルの検証を実施すべきと考えます。実装したらすぐに運用開始できるというものではありません。ポリシー設定についてご紹介します。API管理は標準のポリシーの組み合わせで幅広い要件をカバーできますが、場合によっては既存機能の拡張や新機能の定義が必要になります。今回は、「カスタムポリシー」の開発手順についてご紹介します。リソースのバージョン」)を管理する必要があります。バージョン管理についてご紹介します。アプリケーションの実装方法について紹介しようと思います。アプリケーションの実装方法を引き続きご紹介します。ついて、その特長と使い方をご紹介します。ComponentsがSrping'19から提供されることになりました。Componentsが登場してきた背景とその特長について説明します。Componentsの基本的な構成(メタデータ、html、JavaScript)や実装のルールについて説明します。JavaScriptコードなどはAuraコンポーネント時代からかなり変更された要素ではありますが、より簡潔にコードが書けるように進化しているという印象を受けました。今回は簡単なサンプル・コンポーネントを通して、LWCの基本的な実装方法とSalesforceサーバーからのデータの取得方法を見ていくことにします。Serviceというノンコーディングでサーバーからデータを取得できる便利な方法が導入されており、いくつかの方法でサーバーデータを取得できます。本稿ではその特長と使い分けについて解説してみます。CLIを使って行います。今回はこのCLI(コマンドライン・インターフェース)にスポットを当ててみたいと思います。CLIは従来はAPIでのみ提供されていたSalesforceサーバーに対する様々な機能をコマンド形式で実行できる環境であり、Winter’18で正式にリリースされました。第5回目の今回は応用編ということで、本格的なLWCの実装時に必要となるテクニックをいくつか紹介します。各種資料ENGLISHこのハブをシェアするFacebookTwitterEmailLinkedIn。