Skip to main content

Service logs

View logs from any workers or servers directly within the service logs section of the search modal.

Service logs

Windmill provides direct access to the logs emitted by containers, removing the need to manually retrieve them from Docker or other container platforms. This enables monitoring services without needing to leave the Windmill environment.

You can view them from the Workers page, in particular:

  • Real-Time Monitoring: While logs are emitted continuously, there is a 1-minute latency before they appear in the interface.
  • Visual Graphs: You can easily track the number of logs and errors over time, displayed in a graphical interface:
    • Log Count: Displayed in the mini-graph, showing how many logs were generated each minute.
    • Error Count: Displayed in red, highlighting errors separately for quick identification.
  • Separation by Type: Logs are organized by type. You can see logs for workers, servers and indexers.

On the left menu, you can navigate to Service logs.

Service Logs On Menu

info

Full text search is a feature available in Windmill EE, however, note that it is disabled by default in the example docker compose. To enable full text search on logs and completed jobs, you need to spin up the indexer service, learn how to.

You can type any string on the search bar to query logs, the hosts that matched your query will be shown on the left pane with the count of lines that matched the query.

If you select a host, you will get the most recent lines that match your query (limited to 1000). This is very similar to what you would expect from a graphana setup.

Search results

Queries are parsed by Tantivy's QueryParser, which lets you build relatively complex and useful queries. For example, you can try searching:

worker_group:default ping

To limit the search to workers in the default worker group.

The fields that are indexed and can be used for this kind of search are:

Filed nameTypeDescription
hostTEXTThe hostname, e.g windmill-workers-7cbf97c994-lptqj
modeTEXTThe mode, worker, server or indexer
worker_groupTEXTWorker Group associated (if applicable)
timestampDATEThis is the timestamp of the log file used to store the logs internally, meaning that it's innacurate of up to a minute.
file_nameTEXTName of the file associated in s3 or in disk.
logsTEXTthe log lines themselves. logs:<query> is equivalent to query

Log Storage

Windmill provides a flexible solution for log storage depending on your setup:

  • Standard Setup (without Enterprise Edition): Logs are stored locally on disk. For this to work, there must be a dedicated log disk, which is pre-configured in the Docker Compose setup.

  • Enterprise Edition (with Instance object storage): For users with the Enterprise Edition (EE), logs can be stored in S3 if instance object storage is configured. This option provides more scalable storage and is ideal for larger-scale deployments or where long-term log retention is important.

Log retention

Windmill retains logs no older than two weeks. You can decide if this retention policy also applies to the logs stored on s3 through the Instance Settings.

Visibility

As these are the logs of the whole windmill instance, only users with the superadmin or devops roles can see this page.