Dynatrace Labels Valid (SL008)

Validates Dynatrace flags and labels in application.properties and deployment.yaml files.

Description

Scans SQA & Prod application.properties files to ensure all required Dynatrace flags are present in Mobile-Framework projects. Reads kubernetes/base (or kubernetes/kustomize/base)/deployment.yaml and compares DynatraceDeploymentName to MAP-<>-ServiceName; checks required Dynatrace metrics annotations under spec.template.metadata.annotations; reports ERROR on label mismatches or missing required labels/annotations.

Rationale

Ensure required metrics exporting in production-like profiles. Consistent labeling, annotations, and property flags are required for monitoring and topology mapping.

Findings

  • ERROR

    • DynatraceDeploymentName does not match MAP-<>-ServiceName

    • deployment.yaml missing required label(s)

    • Could not find DynatraceDeploymentName in deployment.yaml

    • Could not find MAP-<>-ServiceName in deployment.yaml

    • Missing required annotation: metrics.dynatrace.com/scrape: 'true' under spec.template.metadata.annotations

    • Missing required annotation: metrics.dynatrace.com/port: '15020' under spec.template.metadata.annotations

    • Missing required property for mobile-framework >= 2.4.0: management.dynatrace.metrics.export.enabled=true

Noncompliant

Invalid Dynatrace labels
#Mismatched labels
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-service
  labels:
    DynatraceDeploymentName: my-service
    MAP-Prod-ServiceName: other-service
Invalid Dynatrace properties
# Required metrics missing for exporting when mobile-framework >= 2.4.0 (for prod)
management.dynatrace.metrics.export.enabled=false

Compliant

Valid Dynatrace labels
#Matching labels
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-service
  labels:
    DynatraceDeploymentName: my-service
    MAP-Prod-ServiceName: my-service
Valid Dynatrace properties
# Required metrics exporting when mobile-framework >= 2.4.0 (for prod)
management.dynatrace.metrics.export.enabled=true

Configuration

This rule has no configuration.