2012-09-10 5 views
7

誰かがGoogle App Engineのログ機能を改善するためのアドバイスをお持ちですか?私は現在Splunk Stormを使用しようとしていますが、入力に関しては細心の注意を払っています。他の誰かがこれに遭遇し、それをいくらかの能力で解決しましたか?App EngineのネイティブロギングAPIに代わるものはありますか?

現在、私はLogServiceから読み取り、ログをSplunk StormにREST API経由でパイプするバックエンドで実行されるプロセスを持っています。これはしばしば失敗するか、または嵐が降りるか、バックエンドIPが変更されます。

私の問題は、新しいバージョンがプッシュされてログが消えて、提供されたダッシュボードでログを照会するのがほとんど使えないため、App Engineで提供されるログです。 Splunkは潜在的な解決策でしたが、クラウドソリューションは多くのことを望みました。

私のログに優れたインターフェースを提供するものは何でも感謝します。

+0

あなたのニーズに何が不十分か不十分かを詳しく説明できますか?問題がApp Engine、Splunk、またはその両方であるかどうかは不明です。 –

+0

完了。私の問題はGAEです。 –

+0

「新しいバージョンがプッシュされたときにログが消えてしまう」これは起こりません。ただし、クエリを作成するバージョン以外のアプリケーションのログを明示的に要求する必要があります。たとえば、Pythonでは、logservice.fetchを呼び出すと、古いログを要求するために使用できる「version_ids」パラメータが使用されます。 JavaにはLogQuery.majorVersionIds()があります。もしあなたがすでにそれをしていて、ログが本当に消えてしまったら、バグを報告してください。 –

答えて

1

Splunk(または別の外部サービス)を永続ストレージとして使用することに決めたので、App Engineのログサービスに書き込まれてからSplunkが利用可能になるまでの間にログをバッファリングする場所が必要なように聞こえますログを受け入れる。バージョンの変更によってApp Engineからログアウトする前にログを失わないようにするには、このバッファを高速かつ高可用性にする必要があります。

AEデータストアが妥当な選択肢です。サードパーティへの信頼できないホップはなく、可用性SLAがあり、書き込みをシャーディングすることによって任意にスケーリングすることができます。欠点は、R/Wオペレーションのコストと機内ログのストレージフットプリントですが、別のバッキングストアにも匹敵するコストがかかります。

サービスの選択肢は問わず、ログリーダーAPIから1つのバッチ処理(バックエンドやクロチェブなど)をバッファに書き込みます。アプリの更新より頻繁に実行される限り、ログは常に耐久性のあるストレージに存在します。次に、別のバッチプロセスがSplunkが利用可能になるのを待ってから、バッファからアップロードし、Splunkからの確認確認を受け取ると削除します。

5

ログをGAEからBiqQueryquite capable query language)にエクスポートできます。すでにこれを行っているオープンソースプロジェクトのMacheを使用することができます。関心のあるフィールド(列)を公開する(および照会する)には、write your own exporterを入力する必要があります。

+0

興味深い。私はすでに輸出業者を書いているので、これはかなり簡単かもしれません。 –

関連する問題