Configure dataflow profile

Important

Azure IoT Operations Preview – enabled by Azure Arc is currently in preview. You shouldn't use this preview software in production environments.

You'll need to deploy a new Azure IoT Operations installation when a generally available release is made available. You won't be able to upgrade a preview installation.

See the Supplemental Terms of Use for Microsoft Azure Previews for legal terms that apply to Azure features that are in beta, preview, or otherwise not yet released into general availability.

By default, when you deploy Azure IoT Operations, a dataflow profile is created with default settings. You can configure the dataflow profile to suit your needs.

apiVersion: connectivity.iotoperations.azure.com/v1beta1
kind: DataflowProfile
metadata:
  name: my-dataflow-profile
spec:
  instanceCount: 1
  tolerations:
    ...
  diagnostics:
    logFormat: text
    logLevel: info
    metrics:
      mode: enabled
      cacheTimeoutSeconds: 600
      exportIntervalSeconds: 10
      prometheusPort: 9600
      updateIntervalSeconds: 30
    traces:
      mode: enabled
      cacheSizeMegabytes: 16
      exportIntervalSeconds: 10
      openTelemetryCollectorAddress: null
      selfTracing:
        mode: enabled
        frequencySeconds: 30
      spanChannelCapacity: 100
Field Name Description
instanceCount Number of instances to spread the dataflow across. Optional; automatically determined if not set. Currently in the preview release, set the value to 1.
tolerations Node tolerations. Optional; see Kubernetes Taints and Tolerations.
diagnostics Diagnostics settings.
diagnostics.logFormat Format of the logs. For example, text.
diagnostics.logLevel Log level. For example, info, debug, error. Optional; defaults to info.
diagnostics.metrics Metrics settings.
diagnostics.metrics.mode Mode for metrics. For example, enabled.
diagnostics.metrics.cacheTimeoutSeconds Cache timeout for metrics in seconds.
diagnostics.metrics.exportIntervalSeconds Export interval for metrics in seconds.
diagnostics.metrics.prometheusPort Port for Prometheus metrics.
diagnostics.metrics.updateIntervalSeconds Update interval for metrics in seconds.
diagnostics.traces Traces settings.
diagnostics.traces.mode Mode for traces. For example, enabled.
diagnostics.traces.cacheSizeMegabytes Cache size for traces in megabytes.
diagnostics.traces.exportIntervalSeconds Export interval for traces in seconds.
diagnostics.traces.openTelemetryCollectorAddress Address for the OpenTelemetry collector.
diagnostics.traces.selfTracing Self-tracing settings.
diagnostics.traces.selfTracing.mode Mode for self-tracing. For example, enabled.
diagnostics.traces.selfTracing.frequencySeconds Frequency for self-tracing in seconds.
diagnostics.traces.spanChannelCapacity Capacity of the span channel.

Default settings

The default settings for a dataflow profile are:

  • Instances: (null)
  • Log level: Info
  • Node tolerations: None
  • Diagnostic settings: None

Scaling

To manually scale the dataflow profile, specify the maximum number of instances you want to run.

spec:
  maxInstances: 3

If not specified, Azure IoT Operations automatically scales the dataflow profile based on the dataflow configuration. The number of instances is determined by the number of dataflows and the shared subscription configuration.

Configure log level, node tolerations, diagnostic settings, and other deployment-wide settings

You can configure other deployment-wide settings such as log level, node tolerations, and diagnostic settings.

spec:
  logLevel: debug
  tolerations:
    - key: "node-role.kubernetes.io/edge"
      operator: "Equal"
      value: "true"
      effect: "NoSchedule"
  diagnostics:
    # ...