epok

Fluentd

Use fluent/fluentd:v1.16.5-debian-1.0 with the core out_http plugin. Replace YOUR_INGEST_KEY with your Epok ingest key and set the log path. Keep json_array true: this endpoint accepts a JSON array, rather than a batch of newline-delimited objects. The X-API-Key header selects your workspace and project. Make /tmp writable for the tail position file.

Configuration

text
<source>
  @type tail
  path /var/log/fluentd.log
  pos_file /tmp/p2-fluentd.pos
  tag p2-fluentd
  read_from_head true
  <parse>
    @type none
  </parse>
</source>
<filter p2-fluentd>
  @type record_transformer
  <record>
    service p2-fluentd
  </record>
</filter>
<match p2-fluentd>
  @type http
  endpoint https://ingest.getepok.dev/api/v1/fluentd
  headers {"X-API-Key":"YOUR_INGEST_KEY"}
  json_array true
  <format>
    @type json
  </format>
  <buffer>
    @type memory
    flush_interval 1s
  </buffer>
</match>

Keep your ingest key private. Missing keys return 401; unknown keys return 403. A successful HTTP response alone is not proof of stored data.

Real-agent acceptance

The rig requires the unique file line and service p2-fluentd to be stored in the seeded workspace and project. Real-agent acceptance is pending the coordinator run.

From a source checkout with Docker Compose, run the isolated acceptance rig. It uses a fresh key and run marker, publishes no host ports, and removes its stack on exit. Every required stored-data check must pass.

bash
scripts/p2_agent_acceptance.sh

Vector JSON logs · All install guides