Log Monitoring Classic
Dynatrace version 1.252+ OneAgent version 1.247+
Dynatrace allows you to define rules that control log data timestamps.
By default, Log Monitoring automatically detects only the most common and unambiguous subset of date formats supported. For details, see Supported timestamp formats (Logs Classic).
When Log Monitoring is unable to determine the time format, it treats each log line as a separate log entry with an automatically assigned timestamp (observation timestamp) using a one-minute time resolution, except for lines starting with whitespaces (space, tab), which are treated as a continuation of an entry.
Regardless of format, the timestamp typically occurs within the first 64 characters of a log entry. However, the timestamp can occur elsewhere, in which case you can raise this limit on the OneAgent configuration page: Log Monitoring > Timestamp/Splitting patterns.
Regardless of where it occurs in a log entry, a timestamp may be written in multiple formats. Dynatrace supports some timestamp formats by default, but sometimes multiple formats may fit the incoming log data and match the timestamp to an incorrect timestamp pattern.
Because of this, Log Monitoring also enables you to define a specific date format using timestamp rules that specify what should be considered a timestamp in a log record. These rules contain a timestamp pattern, time zone, and matchers.
%z
).log.content
attribute in the timestamp pattern matchers, the highest granularity is a log source. Granularity is at this level because the timestamp pattern is used to split the contents of a log source into separate log records, so it is used before the log.content
attribute's value (or any other attributes set on an individual log record's level) is determined.
Three hierarchy scopes are supported: host, host group, and environment.
The hierarchy scopes are merged into one list in the following order:
The OneAgent receives the merged list (merged lists from its respective hosts, host groups, and environments) with no indication of which scopes are defined.
The host scope can be accessed through the Host settings for a specific host.
The host group scope can be accessed via the Host page.
The Host group property is not displayed when the selected host doesn't belong to any host group.
<group name>
link, where <group name>
is the name of the host group that you want to configure.The environment scope is available in the settings menu.
To add a rule (on the host, host group, or environment level) that interprets the incoming log data timestamps
Select Add rule to start configuring your rule.
Rule name
The name to display for your configuration.
Pattern
Enter the pattern to be read as a date from the logs. For details on timestamp formats, see Supported timestamp formats (Logs Classic) and the Date library.
You need to specify at least the year, month, day, hours, minutes, and seconds, although you can use alternative formats for them. You can include the time zone indicator (%z
) or specify the time zone separately in the rule definition.
Timestamp search limit
Use this field to define the number of characters in every log line where timestamp is searched. If you want to ignore timestamps and split logs using the default rules, set this value to 0
. Use this field to overwrite the global timestamp search limit (default 64 bytes).
Time zone
Select the time zone to apply to this pattern.
This setting is not enabled if you have already specified the timezone in the timestamp pattern (%z
).
You can select Local time zone
to use the time zone of the host on which the OneAgent is running.
Select Add matcher to create a specific match for this rule and narrow down the scope for that rule.
You can include multiple matchers in one rule. For example, the timestamp configuration rule can be applied to logs from a specific container, namespace, or log source. Multiple matchers with the same attribute use AND logic between matchers, while matchers with multiple values assigned to them use OR logic.
Matcher attribute
Matching is based on
Process group
The process group ID.
Log source
A log path; wildcards are supported in form of an asterisk.
K8s container name
The name of the Kubernetes container.
K8s namespace name
The name of the Kubernetes namespace.
K8s deployment name
The name of the Kubernetes deployment.
Container name
The name of the container.
DT entity container group ID
The DT entity container group ID.
Process technology
The technology name.
Select the matching attribute.
Select Value and, from the Value list, select the detected log data items.
You can add multiple values to the selected attribute. You can have one matcher that indicates the Log source
and matches values /var/log/syslog
and Windows Application Log
. Use asterisks (*
) as wildcards to get a partial match.
Select Save changes.
Rules are executed in the order in which they appear on the Timestamp/Splitting patterns page.
When you change the rule order (to change the order in which they are executed), allow for two or three minutes of propagation time between when you save the change and when the change takes effect.
Starting with OneAgent version 1.249, you can activate/inactivate your rules by turning on/off the Active toggle. To manage your rules effectively, we recommend that you upgrade your OneAgent to version 1.249. If you have any rules set on the host with OneAgent version earlier than 249, you will not be able to inactivate them, in which case you need to remove such rules by selecting Delete on the rule level or via the REST API.
Rules are executed in the order in which they appear on the Timestamp/Splitting patterns page.
You can use the Settings API to manage your timestamp configuration:
To check the current schema version for timestamp configuration, list all available schemas and look for the builtin:logmonitoring.timestamp-configuration
schema identifier.
Timestamp configuration objects are available for configuration on the following scopes:
environment
—configuration object affects all hosts in a given environment.host_group
—configuration object affects all hosts assigned to a given host group.host
—configuration object affects only the given host.To create a timestamp configuration using the API
Create an access token with the Write settings (settings.write
) and Read settings (settings.read
) permissions.
Use the GET a schema endpoint to learn the JSON format required to post your configuration. The timestamp configuration schema identifier (schemaId
) is builtin:logmonitoring.timestamp-configuration
. Here is an example JSON payload with the timestamp configuration:
[{"insertAfter":"uAAZ0ZW5hbnQABnRlbmFudAAkMGUzYmY2ZmYtMDc2ZC0zNzFmLhXaq0","schemaId": "builtin:logmonitoring.timestamp-configuration","schemaVersion": "0.1.0","scope": "tenant","value": {"config-item-title": "Added from REST API","date-time-pattern": "%Y-%m-%d %H:%M:%S","timezone": "CET","matchers": [{"attribute": "dt.entity.process_group","operator": "MATCHES","values": ["PROCESS_GROUP-05F00CBACF39EBD1"]},{"attribute": "log.source","operator": "MATCHES","values": ["Windows System Log","Windows Security Log"]}]}}]
Use the POST an object endpoint to send your configuration.