The Manifest#

The mapping between MQTT and Otel is configured via a file called Manifest.yaml (or whatever is configured in Application Settings).

The structure of the file is as following

File structure#

  1. Version#

    The version must be set and must be the first line of the file. If not set, or not being on the first line, the file will be declined. Currently the following versions are supported: 1.0, 1.1.

  2. General settings#

    General setting that will be applied to the full manifest.

  3. MqttConnections#

    In this section the available Mqtt broker connections will be configured. For details, see Mqtt broker. ImportFrom

  4. OtelConnections#

    In this section the available open telemetry connections will be configured. For details, see Otel connections. ImportFrom

  5. OtelScopes#

    In this section the available open telemetry instrumentation scopes will be configured. For details, see Instrumentation scopes. ImportFrom

  6. Mappings#

    The Mappings section defines reusable lookup tables that translate raw input values into human‑readable values. For details, see Mappings. ImportFrom

  7. SubscriptionGroups#

    A list of grouped subscriptions that can be referred later in the otel section. For details see Subscription groups. ImportFrom

  8. Processors#

    A list of processors, that will take mqtt payloads, processes them and then create otel logs or metrics. For details see Processors. ImportFrom

  9. How to organize large manifests.#

    Find out how you can organize complex scenarios in your manifest file. See Organize manifest files.

As a starting point, this is an example manifest using logs, and metrics:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Version: 1.1

MqttConnections:
  - Name: "My broker"
    Endpoint:
      Port: 32007
      Address: "mymqtt-broker.net"
      EnableTls: false

OtelConnections:
  - Name: "My Otel server"
    ServiceName: "my-service"
    ServiceNamespace: "my-service-namespace"
    Endpoint:
      Protocol: "http"
      Port: 32014
      Address: "my-otel-collector.net"
      EnableTls: false

Processors:
  - Name: "Processor Temperature"
    Description: "Automatically parses a Json payload."
    Mqtt: 
      Subscriptions:
        - Topic: "sensor/+/data"
    Otel:
      Metrics:
        - Instrument: Gauge
          Attributes:
            - Key: Location
              Value: MainServerRoom
          ParseAs: 
             Type: Json

  - Name: "Server logs"
    Description: "Collect all log messages from the server."
    Mqtt:
      Subscriptions:
        - Topic: "message-log-topic"
    Otel:
      Attributes:
        - Key: Location
          Value: MainServerRoom
      Logs:
        - Name: "Logging"
          PayloadType: Json
          Transform: "DISSECT('%{otel_timestamp:DateTime} [%{otel_loglevel}] [{server_name}] %{otel_message}')"

General settings#

The Manifest supports the following general settings:

ParameterDescription
CreateAttributesFromUserProperties v 1.1A value indicating, whether attributes should be created for all mqtt user attributes.
LogMessageDetails v betaIndicates whether MQTT message details should be logged when an error occurs. Set to false, if data contains information that should not be logged.
AllowRuleDeactivation v betaDetermines whether a rule may be deactivated.
AllowRuleDeactivationByTopic v betaControls whether individual topics may be deactivated for a rule
AllowRuleDeactivationByItem v betaControls whether individual topics may be deactivated for a specific item inside a rule.
BlockedTopicLimit v betaDefines the maximum number of topics that may be blocked for an item or rule before the entire item or rule becomes globally deactivated.