OutSystems 11のLog Streaming (Open Telemetry対応機能)のドキュメントを読んでみる(2023/12/23時点)

Introduction to log streamingで公開されているLog Streamingについてのドキュメントを読んで、いくつかコメントとメモ書きを残す。

この記事は2023/12/23に読んだドキュメントについてのもの。また、現時点ではO11のみで利用可能な機能で、かつアドオンが必要(=たぶん追加費用?)。

読んでいる時点でのドキュメント構成

全体的な感想

恐らく、(OutSystems Cloudの新機能であるLog Separationを使っていることから)OutSystems Cloud専用機能のようだ。

この機能は(現状では)OutSystems 11用だが、連携されるログはODCで言えば、LogsとTracesに出力されているもの(未実装のクライアントTraceも含めて)。よって、ODCでこの機能がリリースされるときも、LogsとTracesに出力されるのと同じ情報が連携されるのではないだろうか。ドキュメントを読んだ限り、Windowsのパフォーマンスカウンタでとるような情報は含まれていないように見えた。

OutSystems 11の場合、ログ関係Entityが公開されていることから、多くの環境でログレコードのコピーやバックアップはすでに実装済みと思われる。よってあえて、Log Streamingを利用しなければならないケースは、例えば

  • 標準で使っているAPMツールがあり、そちらに集約したい
  • ログの発生頻度やデータ量が多く、適当に作ったRDBに保存するのはしんどい

ようなケースだろうか。

Introduction to log streaming

Log Streamingはログデータをほぼリアルタイムで外部のツールに連携する仕組み。

Log StreamingにはOpenTelemetry Protocolの標準に従っている。

プロセスは以下の通り

  1. アプリケーションとプラットフォームがログデータを生成する
  2. ログがOpenTelemetry Protocolのフォーマットに変換される
  3. 変換されたデータをProtocol Bufferの形式でHTTP/gRPCで送信する。100msごとに複数レコードをまとめて送信する(圧縮はされない)。1つのメッセージのサイズは1100バイト-1700バイト。送信先が受け取れないとき最大48時間までリトライが行われる

APM (Application Performance Monitoring)ツールの中でサポートしていると明記されているのは

  • Elastic Cloud
  • New Relic
  • Splunk
  • Datadog
  • Dynatrace

Streaming log data

使いたいAPMツールがOpen Telemetryのデータを受け取る事ができない場合、「OpenTelemetry Collector」をセットアップする。OpenTelemetry Collectorのダウンロード先はOpenTelemetryのgithubレポジトリなので、OutSystems専用のツールというわけではなさそう。

APMとの接続の設定はLifeTimeで行う。設定項目は、URL(APMサーバーのURLか、APMツールがOpen Telemetryに直接対応していないならOpenTelemetry CollectorのURL)と認証情報。

Logged data fields

ログデータのスキーマを、対応するログの種類ごとに列挙しているページ。

対応するログの種類は、以下の通りで、Log data referenceに挙げられたログ用のView全てからdeprecatedなものを除いたもの。

  • General
  • Error
  • Request event
  • Cyclic job
  • Extension
  • Integration
  • Integration detail
  • Mobile request
  • Mobile request detail
  • Screen
  • Service Action
  • Service API detail

Configuring the log streaming service in LifeTime

Elastic Cloudの場合を例に、設定手順をスクリーンショット付きで紹介している。

LifeTime > Environmentsの下の方(環境リストよりも下)に「LOG STREAMING」という項目が増えるようだ。

ログデータを送り出す環境(開発とか本番とかのこと)を選択できる。

各APMツールごとに前提条件や設定手順を示したサブページがあるが、以下の前提条件は共通だった。

– Enabled Log separation.
– Installed Platform Server version 11.23.1 or higher.
– Installed LifeTime version 11.19.0 or higher.

OutSystems CloudのLog Separation

オンプレミスではすでに利用可能だった、ログDBをアプリDBから分離する機能をOutSystems Cloudにも提供するもの。Platform Server 11.23.1から。既存顧客がこの機能を有効化するにはサポートにチケットで依頼する。

データを格納する段階で、Open Telemetryに対応した形にするようだ。

また、格納先も通常とは異なる(Data Platform。具体的に何なのかは書いてないが)。

恐らく、そのために、ログテーブルへの直接アクセスができなくなり、PlatformLogs Extension (直近2週間分のログEntityへのアクセスを提供する)も使えなくなる(代わりにCentralizedPlatformLogs Extensionがあるが、提供されているのはEntityではなくActionに見える)。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする