Skip to content

Support local logging of events caused by external actors #679

@jfallows

Description

@jfallows

Describe the desired outcome from the user's perspective
As devops, I want to understand why zilla is not behaving as expected when integrating with external actors such as authenticating clients, Kafka broker authorization or API version support, or DNS servers, so that I can correct either zilla.yaml or the external system setup as needed.

Acceptance criteria

  • stdout exporter of HTTP request events (including authorized identity, if any)
  • stdout exporter of HTTP authorization failure events
  • stdout exporter of MQTT authentication failure events
  • stdout exporter of TLS authentication failure events
  • stdout exporter of DNS resolution failure events
  • stdout exporter of Kafka authentication failure events
  • stdout exporter of Kafka API version rejection events

Additional context
Events are recorded by the appropriate bindings and the telemetry stdout exporter logs locally.

Tasks

  • Define typed events for Kafka, HTTP, MQTT, TLS, TCP in .idl
  • Design append-only per-core binary log streams to record named events
  • Implement append-only per-core binary log streams to record events
  • Record configured named events for HTTP, MQTT, TLS, TCP (DNS), Kafka
  • Support generic configuration for telemetry exporter for named events
  • Implement the stdout telemetry exporter for named events
  • Update reference docs to include stdout telemetry exporter and named events

Notes

  • ensure logging on the data path cannot interfere with exporting logs locally (or remotely)
  • eventsN alongside dataN (per core)
    • structured types defined per binding / guard / vault / exporter / metric
    • simple binary messages
    • type indicators for deserialization
    • exporting can be lossy, need to know how to skip ahead when falling behind
    • rotating append-only binary logs

Metadata

Metadata

Assignees

Labels

storyFeature description from user's perspective

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions