0

したがって、次の形式のログがあります。

{
    "date":1598808279.785381,
    "log":"{\"level\":\"info\",\"ts\":15988.7852,\"caller\":\"server/middlewares.go:26\",\"msg\":\"Request Log\",\"status\":200,\"method\":\"GET\",\"url\":\"/health\",\"duration\":0.000008323}",
    "container_id":"someid",
    "container_name":"/service-name",
    "source":"stdout"
}

フィールド内のステータスを抽出したいと思いlogます。ドキュメントを読んだ後、私はできるはずです:

_collector="MyService" | json auto | fields log.status

ただし、それは構文エラーをスローします.

私が考えた別の解決策は、他の言語の動作に基づいて、パイプは通常オブジェクトを返すので、フィールドを段階的に返すことができれば、これはうまくいくはずです:

_collector="MyService" | json auto | fields (log) | fields (status)

しかし、それもうまくいきません。

これを特定のフィールドに指定しようとしました:

_collector="MyService" | json auto "fields.log.status"

しかし、それはうまくいきません。

また、次のようなフィールドを使用してその値を直接取得しようとしました:

_collector="MyService" | json field=Message "log.status"

最後に、これらのバリエーションをすべて試してみました。

_collector="MyService" | json auto field=log "status"

_collector="MyService" | json auto field=log | fields status

_collector="MyService" | json auto field=log "status"

_collector="MyService" | json auto field=log "log.status"

しかし、役に立たない。

私が間違っているアイデアはありますか?

4

1 に答える 1