Log management and analytics is used for troubleshooting and monitoring your applications.
This section contains generic audit log information.
Query audit logs in Grail.
fetch logs | filter isNotNull(audit.action)
Categorization and information on the audit log.
| Attribute | Type | Description | Examples |
|---|---|---|---|
audit.action | string | stable Display name: Audit actionAudited action. | Access to Azure Resource Manager; New User Created; User added to Group |
audit.identity | string | stable Display name: Audit identityUser name, service account name, or principal name that executes audited action. | name.surname@example.com |
audit.result | string | stable Display name: Audit resultResult of the audited action. | Succeeded; Failed |
audit.status | string | stable Display name: Audit statusStatus of the audited action. | Started; In Progress; Succeeded; Failed; Active; Resolved |
audit.time | timestamp | experimental Display name: Audit timeTimestamp of the audited action. | 16/01/2025, 10:34 AM |
authentication.is_multifactor | boolean | experimental Display name: Is multifactor authenticationReports whether the executant of the audited action has performed a multi-factor authentication. | |
content | string | stable Display name: ContentUnstructured content of the record. It should contain a human-readable message. Often it is the raw version of a record read from a source. | No keepalive from datasource statsd. Restarting |
event.type | string | stable Display name: Event typeThe unique type identifier of a given event. Tags: permission | LOG |
log.record.uid | string | experimental Unique identifier of the log record. Records sharing the same uid are considered duplicates and may be safely deduplicated. Two distinct log records MUST have different uid values. When logs are ingested from an external tool, this attribute will hold the original vendor log ID. | c42dbd31-17b5-4270-b1a7-824a52e0d0e9 |
log.source | string | stable Display name: Log sourceThe origin of the log record: a file path, URI, or equivalent stable reference to where the data was read from. 1 Tags: permission | /var/log/kube-apiserver/audit.log; s3://my-bucket/AWSLogs/123456789012/CloudTrail/; https://your-org.okta.com/api/v1/logs |
loglevel | string | stable Display name: Log levelThe log event severity level. | ERROR; INFO; TRACE |
status | string | experimental Display name: StatusOverall significance of log event, derived from log level. Only INFO and NONE values are allowed. | INFO; NONE |
timestamp | timestamp | stable Display name: TimestampTime (UNIX Epoch time in nanoseconds) when the event originated, typically when the event was ingested into Dynatrace. | 1649822520123123123 |
This field is mandatory for all log records. Use an absolute file path for file-based ingest, an S3 URI for S3-sourced data, an HTTPS URL for API-based ingest, and the format documented by the ingest mechanism for other sources. Collectors may normalize the value to a canonical form, for example, by stripping rotation suffixes so that auth.log.1 and auth.log map to the same source, or by removing non-deterministic suffixes that change across stream rotations. AWS CloudWatch Logs appends a hash to EKS audit log stream names, producing names like kube-apiserver-audit-abc123def456abc123def456abc123def456; because that hash changes each time the stream rotates, strip it and record only the stable prefix kube-apiserver-audit. For syslog and other network-based ingest, use the most specific origin available. If the sender preserved a file path in the message, use that. If not, use the identifier the collector assigns to the listener.
Information about the audited action result.
| Attribute | Type | Description | Examples |
|---|---|---|---|
result.code | long | experimental Display name: Result codeError code associated with the result. | 0; 50126; 400 |
result.detail | string | experimental Display name: Result detailFurther details regarding the result. | The user did not enter the right credentials |
result.message | string | experimental Display name: Result messageBrief message attached to the result. | User created successfully; Error validating credentials due to invalid username or password. |
Information about the client app used by the identity to perform the audit action.
| Attribute | Type | Description | Examples |
|---|---|---|---|
client.app.name | string | experimental Display name: Client app nameThe name of the client application used to perform the request. | MS Outlook |
client.ip | ipAddress | experimental Display name: Client IP addressThe IP address of the client that makes the request. This can be IPv4 or IPv6. Tags: sensitive-spans sensitive-user-events | 194.232.104.141; 2a01:468:1000:9::140 |
Information regarding the actor who peformed the audited action.
| Attribute | Type | Description | Examples |
|---|---|---|---|
actor.geo.city.name | string | experimental Display name: Actor city nameName of the city from which the actor operates. | Rome |
actor.geo.country.name | string | experimental Display name: Actor country nameName of the country from which the actor operates. | Canada |
actor.geo.location.lat | string | experimental Display name: Actor geo latitudeThe approximate WGS84 latitude. | 45.505918 |
actor.geo.location.lon | string | experimental Display name: Actor geo longitudeThe approximate WGS84 longitude. | -73.614830 |
actor.ips | ipAddress[] | stable Display name: Actor IP addressesList of the client's IP addresses (IPv4 or IPv6) from which the actor operates. | [168.10.15.23, 2a01:468:1000:9::140] |
Information regarding the device used by the identity peforming the audited action.
| Attribute | Type | Description | Examples |
|---|---|---|---|
browser.name | string | resource stable Display name: Browser nameThe browser name. | Chrome |
browser.version | string | resource stable Display name: Browser versionThe browser version. | Version 142.0.7444.176 |
device.id | string | experimental Display name: Device IDGUID that uniquely identifies the device which is used to perform the audited action. | 11c1add1-612a-483d-8b24-cccbb35d3306 |
device.name | string | experimental Display name: Device nameThe name associated with the device which is used to perform the audited action. | DEVICE-HOFW9324FJN |
device.os.name | string | experimental Display name: Device OS nameHuman-readable operating system name. | MacOs; Windows |
The cloud provider information (if any) associated with the audit logs.
| Attribute | Type | Description | Examples |
|---|---|---|---|
cloud.provider | string | resource stable Display name: Cloud providerName of the cloud provider. | alibaba_cloud |
The Azure tenant information (if any) associated with the audit logs.
| Attribute | Type | Description | Examples |
|---|---|---|---|
azure.tenant.id | string | resource experimental Display name: Azure tenant IDUnique, immutable identifier assigned to the Azure tenant. | 37c4add3-612a-483d-8b24-cccbb35d3306 |
azure.tenant.name | string | resource experimental Display name: Azure tenant nameName assigned to the Azure tenant. | MyAzureTenant |
The AWS account (if any) associated with the audit logs.
| Attribute | Type | Description | Examples |
|---|---|---|---|
aws.account.id | string | resource stable Display name: AWS account IDThe 12-digit number, such as 123456789012, that uniquely identifies an AWS account. Tags: permission primary-field | 123456789012 |
aws.account.name | string | resource experimental Display name: AWS account nameName associated with the AWS account. | example.com |
The GCP organization (if any) associated with the audit logs.
| Attribute | Type | Description | Examples |
|---|---|---|---|
gcp.organization.id | string | resource experimental Display name: GCP organization IDUnique, immutable identifier assigned to an organization resource. | 123456789012 |
gcp.organization.name | string | resource experimental Display name: GCP organization nameName assigned to the GCP organization. | dynatrace.com |
This section contains general log information. There can be additional records added both resource attributes describing source as well as log record attributes to add structured log record data.
Query logs in Grail.
fetch logs
The log module, in certain situations, may associate multiple process group instances with a single log.
This can occur when more than one process group instance opens a file in write mode or if there are multiple
process group instances in a single container. In such cases, the
dt.entity.process_group_instance and dt.entity.process_group
may be reported as arrays. To prepare queries for such situations, use matchesValue
instead of == for equality checks.
| Attribute | Type | Description | Examples |
|---|---|---|---|
content | string | stable Display name: ContentUnstructured content of the record. It should contain a human-readable message. Often it is the raw version of a record read from a source. | No keepalive from datasource statsd. Restarting |
dt.entity.process_group | string | resource deprecated This field is deprecated and will be removed in the future. Use dt.process_group.id or dt.process_group.detected_name instead. Note that there is no entity type PROCESS_GROUP in Smartscape, so dt.process_group.id exists only for compatibility. Preferably use dt.process_group.detected_name to identify process groups.Display name: Process groupThe entity ID of the process group that has emitted the log. Note that the log module may report multiple values as an array if a file is opened by multiple processes or multiple processes are run in a single container. To prepare queries for such situations, use matchesValue instead of == for equality checks.Tags: entity-id | PROCESS_GROUP-E0D8F94D9065F24F |
dt.entity.process_group_instance | string | resource deprecated This field is deprecated and will be removed in the future. Use dt.smartscape.process instead.Display name: Process group instanceThe entity ID of the process group that has emitted the log. Note that the log module may report multiple values as an array if a file is opened by multiple processes or multiple processes are run in a single container. To prepare queries for such situations, use matchesValue instead of == for equality checks.Tags: entity-id | PROCESS_GROUP_INSTANCE-E0D8F94D9065F24F |
dt.source_entity | string[] | resource deprecated This field is deprecated and will be removed in the future. Use dt.smartscape_source.id instead.Display name: Source entityThe entity IDs of the log's source. Note that the log module may report multiple values as an array if a file is opened by multiple processes or multiple processes are run in a single container. To prepare queries for such situations, use matchesValue instead of == for equality checks. 1Tags: entity-id | ['PROCESS_GROUP_INSTANCE-22714B95E4BF6AE0', 'PROCESS_GROUP_INSTANCE-D6DD5FF37FBEF0DF'] |
event.type | string | stable Display name: Event typeThe unique type identifier of a given event. Tags: permission | LOG |
log.encoding | string | experimental Data serialization format of the log record's body, such as json or xml 2 | json; jsonl; xml; csv; tsv; logfmt; plaintext; kv; msgpack; cbor; bson |
log.format | string | experimental Message format standard used to structure the log event 3 | cef; leef; gelf; clef |
log.iostream | string | stable Display name: Log I/O streamThe I/O stream to which the log was emitted. | stdout; stderr |
log.record.uid | string | experimental Unique identifier of the log record. Records sharing the same uid are considered duplicates and may be safely deduplicated. Two distinct log records MUST have different uid values. When logs are ingested from an external tool, this attribute will hold the original vendor log ID. | c42dbd31-17b5-4270-b1a7-824a52e0d0e9 |
log.source | string | stable Display name: Log sourceThe origin of the log record: a file path, URI, or equivalent stable reference to where the data was read from. 4 Tags: permission | /var/log/kube-apiserver/audit.log; s3://my-bucket/AWSLogs/123456789012/CloudTrail/; https://your-org.okta.com/api/v1/logs |
log.type | string | experimental Normalized, technology-agnostic label that identifies the semantic type of the log record, independent of source, transport, distro, or collection method 5 | kube-audit; nginx-access; aws-cloudtrail; checkpoint-firewall; okta-system; ncsa-combined; w3c |
loglevel | string | stable Display name: Log levelThe log event severity level. | ERROR; INFO; TRACE |
ordinal | long | stable The field is used to order records produced by a single source. It is monotonically increasing across successive records, but the step between values is unspecified. The field encodes only a local (source‑specific) ordering, not a global one, so it is typically used as a secondary sort key after the timestamp to preserve the original sequence when timestamp resolution is insufficient. Examples include a byte offset within the source file or the __SEQNUM field in systemd‑journald. | 1479670 |
process.technology | string[] | stable Display name: Process technologyTechnologies detected for the process. | ['Java', 'Tomcat']; ['Go', 'Envoy'] |
span_id | string | experimental Display name: Span IDA unique identifier for a span within a trace. The span_id is an 8-byte id and hex-encoded if shown as a string. | f76281848bd8288c |
status | string | experimental Display name: StatusOverall significance of log event, derived from log level. Only INFO, WARN, ERROR and NONE values are allowed. | ERROR; WARN; INFO; NONE |
timestamp | timestamp | stable Display name: TimestampThe time (UNIX Epoch time in nanoseconds) when the event originated, typically when the source created it. If no original timestamp is available, it will be populated at ingest time and required for all events. In the case of a correlated event (for example, ITIL events), this time could be different from the event.start time, as this time represents the actual timestamp when the "update" for the event was created. | 1649822520123123123 |
trace_id | string | experimental Display name: Trace IDA unique identifier for a trace. The trace_id is a 16-byte id and hex-encoded if shown as a string. | 357bf70f3c617cb34584b31bd4616af8 |
The value of this field will be based on the value of one of the dt.entity.<type> fields. This means that the dt.source_entity and dt.entity.<type> fields will both be set to the same ID.
Requires log.type to be set. Only set when the serialization format is not already implied by log.type. For example, log.type 'w3c' is always space-delimited plaintext by definition, so log.encoding adds nothing and should be omitted. By contrast, log.type 'kube-audit' does not mandate an encoding, so log.encoding = 'json' adds genuine information. Describes how the log body is encoded at the byte or text level, independently of the message format standard in log.format. JSON and JSONL are distinct values: JSON represents a single complete document, while JSONL (also called NDJSON or JSON Lines) places one JSON object per line and requires line-by-line parsing. This field describes the content-level serialization of the log body, not the ingestion protocol or wire format used to deliver the record to Dynatrace (see dt.ingest.format), and not character encoding such as UTF-8.
Requires log.type to be set. Only use when a type-agnostic container format is in use and log.type alone does not describe the structure. Identifies a named structural convention that can carry different types of events from different products without implying what the content is. CEF and LEEF are the canonical examples: a firewall and an IDS can both emit CEF carrying entirely different field vocabularies, so log.type is still needed to identify the content. Web log conventions such as clf, ncsa-combined, and w3c are excluded because they imply a content type (web server access log) and belong in log.type instead. Use log.encoding for the serialization format of the payload (for example, JSON or XML).
This field is mandatory for all log records. Use an absolute file path for file-based ingest, an S3 URI for S3-sourced data, an HTTPS URL for API-based ingest, and the format documented by the ingest mechanism for other sources. Collectors may normalize the value to a canonical form, for example, by stripping rotation suffixes so that auth.log.1 and auth.log map to the same source, or by removing non-deterministic suffixes that change across stream rotations. AWS CloudWatch Logs appends a hash to EKS audit log stream names, producing names like kube-apiserver-audit-abc123def456abc123def456abc123def456; because that hash changes each time the stream rotates, strip it and record only the stable prefix kube-apiserver-audit. For syslog and other network-based ingest, use the most specific origin available. If the sender preserved a file path in the message, use that. If not, use the identifier the collector assigns to the listener.
This field is mandatory. It is the primary classification field: if log.type fully describes the record, no further fields are needed. Add log.format only when a type-agnostic container format is in use and the type alone does not describe the structure. Add log.encoding only when the serialization is not implied by log.type (for example, log.type 'w3c' is always plaintext; setting log.encoding would be redundant). Values should be lowercase and describe the log's meaning rather than its origin technology or vendor. For example, use 'kube-audit' for Kubernetes audit logs regardless of whether they originate from EKS, GKE, AKS, or an on-prem cluster. No fixed taxonomy is enforced. Use only lowercase letters, digits, and hyphens in values. Dots, colons, and underscores are not allowed. This prevents structured separators from encoding vendor and datasource together (for example, 'aws:cloudtrail'), which is the job of product.vendor and product.name.