Skip to main content

Log monitoring

Taskurai is integrated with Azure Monitor Log Analytics to monitor and analyze the worker logs.

There are two types of logs for Taskurai workers:

  • Console logs: These are emitted by the worker.
  • System logs: These are emitted by the container service.

Prerequisites

Using the Taskurai Portal

The primary way to access logs is through the Taskurai Portal. Tasks and steps each maintain their own history, where every run records its associated logs.

Advanced: using the SDK

It is possible to query the log messages using the TaskuraiLogsClient.

Console Logs

The Taskurai service provides console log messages at the worker level.

The console log data is accessible by querying the TaskuraiConsoleLogs table. Common columns in the table are:

ColumnTypeDescription
MessageStringMessage
LevelStringLevel
TypeStringType
TimestampRealTimestamp
TimeGeneratedDateTimeOffsetTime generated (UTC)
TimeDateTimeOffsetTime (UTC)
TaskIdStringTask ID
TaskRunCountLongTask run count
StepIdStringStep ID
StepRunCountLongStep run count
TaskCorrelationIdStringTask correlation ID
CommandStringCommand name
HubNameStringHub name
WorkerNameStringWorker name
WorkerRevisionStringWorker revision
ContainerImageStringContainer Image
SourceContextStringSource context
PlainMessageStringPlain message
CustomColumnsDynamicUser defined columns (structured logging)

Using custom columns

When custom columns are introduced in structured logging, these columns can be used in your Kusto queries:

TaskuraiConsoleLogs | extend TaskuraiSDKVersion = CustomColumns[\"TaskuraiSDKVersion_s\"] | where TaskuraiSDKVersion == '1.10.0.0'

System Logs

The Taskurai service provides system log messages at the worker level.

The system log data is accessible by querying the TaskuraiSystemLogs table. Common columns in the table are:

ColumnTypeDescription
MessageStringMessage
TimestampRealTimestamp
TimeGeneratedDateTimeOffsetTime generated (UTC)
TimeDateTimeOffsetTime (UTC)
CountLongCount
TypeStringMessage type
LevelStringLog level
ReasonStringReason
ContainerAppNameStringContainer app name
WorkerRevisionStringWorker revision
WorkerInstanceStringWorker instance