For the complete documentation index, see llms.txt. This page is also available as Markdown.

Bring Your Own Logging

Pipekit BYO Logging Backend lets you collect and view workflow logs in a self-hosted Loki backend. This allows you to have the full logging experience managed by Pipekit without having Pipekit ever ac

Pipekit allows you to connect your self-hosted Loki instance to the Pipekit control plane. Once you add your Loki configuration to Pipekit, you will have to use a log collector on your Kubernetes clusters in order to send the logs from your cluster to your Loki instance.

Connect a Loki Instance

Go to the Org tab in Pipekit. Then navigate to the BYO Logs tab. Enter the address of your Loki instance along with a username and password that you use for authenticating at the gateway/ingress layer. Then submit the information. You'll have to make sure that the address is accessible to the Internet and that the following endpoints are reachable:

/loki/api/v1/query
/loki/api/v1/query_range
/loki/api/v1/tail
/loki/api/v1/series

Configuring a Log Collector

In order to get the logs from your Kubernetes clusters running Argo Workflows into your Loki instance, you'll have to configure a log collector. We use and test with Fluent Bit.

Labels

Pipekit appends three labels to pods run by workflows on clusters where the Pipekit agent is present and configured to either submit workflows or read externally submitted workflows. This works for both Pipekit-submitted and externally submitted workflows. The labels are the following:

workflows.pipekit.io/org_uuid
workflows.pipekit.io/pipe_uuid
workflows.pipekit.io/run_uuid

Map these to orgUUID, pipeUUID, and runUUID in Loki.

Pipekit also reads three more labels that your log collector must set on each log stream: nodeId, podName, and containerName. podName is the name of the pod and containerName is the name of the container. nodeId is the Argo workflow node ID. Argo sets this ID on each pod as the workflows.argoproj.io/node-id annotation, so read the value from that annotation.

Fluent Bit Config

Here's a sample fluent bit config that we'd recommend. Note that this configuration reads logs directly from the container file system:

Last updated