Documentation

Microsoft Fabric Output Plugin

This plugin writes metrics to Fabric Eventhouse and Fabric Eventstream artifacts of Real-Time Intelligence in Microsoft Fabric.

Real-Time Intelligence is a SaaS service in Microsoft Fabric that allows you to extract insights and visualize data in motion. It offers an end-to-end solution for event-driven scenarios, streaming data, and data logs.

Introduced in: Telegraf v1.35.0 Tags: datastore OS support: all

Global configuration options

In addition to the plugin-specific configuration settings, plugins support additional global and plugin configuration settings. These settings are used to modify metrics, tags, and field or create aliases and configure ordering, etc. See the CONFIGURATION.md for more details.

Configuration

# Sends metrics to Microsoft Fabric
[[outputs.microsoft_fabric]]
  ## The URI property of the resource on Microsoft Fabric
  connection_string = "https://trd-abcd.xx.kusto.fabric.microsoft.com;Database=kusto_eh;Table Name=telegraf_dump;Key=value"

  ## Client timeout
  # timeout = "30s"

Connection String

The connection_string provide information necessary for the plugin to establish a connection to the Fabric service endpoint. It is a semicolon-delimited list of name-value parameter pairs, optionally prefixed by a single URI. The setting is specific to the type of endpoint you are using. The sections below will detail on the required and available name-value pairs for each type.

EventHouse

This plugin allows you to leverage Microsoft Fabric’s capabilities to store and analyze your Telegraf metrics. Eventhouse is a high-performance, scalable data-store designed for real-time analytics. It allows you to ingest, store and query large volumes of data with low latency. For more information, visit the Eventhouse documentation.

The following table lists all the possible properties that can be included in a connection string and provide alias names for each property.

Property nameAliasesDescription
Client Version for TracingThe property used when tracing the client version.
Data SourceAddr, Address, Network Address, ServerThe URI specifying the Eventhouse service endpoint. For example, https://mycluster.fabric.windows.net.
Initial CatalogDatabaseThe default database name. For example, MyDatabase.
Ingestion TypeIngestionTypeValues can be set to managed for streaming ingestion with fallback to batched ingestion or the queued method for queuing up metrics and process sequentially
Table NameTableNameName of the single table to store all the metrics; only needed if metrics_grouping_type is singletable
Create TablesCreateTablesCreates tables and relevant mapping if true (default). Otherwise table and mapping creation is skipped. This is useful for running Telegraf with the lowest possible permissions i.e. table ingestor role.
Metrics Grouping TypeMetricsGroupingTypeType of metrics grouping used when pushing to Eventhouse either being tablepermetric or singletable. Default is “tablepermetric” for one table per different metric.

Metrics Grouping

Metrics can be grouped in two ways to be sent to Eventhouse. To specify which metric grouping type the plugin should use, the respective value should be given to the Metrics Grouping Type in the connection string. If no value is given, by default, the metrics will be grouped using tablepermetric.

TablePerMetric

The plugin will group the metrics by the metric name and will send each group of metrics to an Eventhouse KQL DB table. If the table doesn’t exist the plugin will create the table, if the table exists then the plugin will try to merge the Telegraf metric schema to the existing table. For more information about the merge process check the .create-merge documentation.

The table name will match the metric name, i.e. the name of the metric must comply with the Eventhouse KQL DB table naming constraints in case you plan to add a prefix to the metric name.

SingleTable

The plugin will send all the metrics received to a single Eventhouse KQL DB table. The name of the table must be supplied via table_name parameter in the connection_string. If the table doesn’t exist the plugin will create the table, if the table exists then the plugin will try to merge the Telegraf metric schema to the existing table. For more information about the merge process check the .create-merge documentation.

Tables Schema

The schema of the Eventhouse table will match the structure of the metric. The corresponding command generated by the plugin would be like the following:

.create-merge table ['table-name']  (['fields']:dynamic, ['name']:string, ['tags']:dynamic, ['timestamp']:datetime)

The corresponding table mapping would be like the following:

.create-or-alter table ['table-name'] ingestion json mapping 'table-name_mapping' '[{"column":"fields", "Properties":{"Path":"$[\'fields\']"}},{"column":"name", "Properties":{"Path":"$[\'name\']"}},{"column":"tags", "Properties":{"Path":"$[\'tags\']"}},{"column":"timestamp", "Properties":{"Path":"$[\'timestamp\']"}}]'

This plugin will automatically create tables and corresponding table mapping using the command above.

Ingestion type

Streaming ingestion has to be enabled on Eventhouse in case of managed operation.

Refer to the following query below to check if streaming is enabled:

.show database <DB-Name> policy streamingingestion

To learn more about configuration, supported authentication methods and querying ingested data, check the documentation.

Eventstream

Eventstreams allow you to bring real-time events into Fabric, transform them, and then route them to various destinations without writing any code (no-code). For more information, visit the Eventstream documentation.

To communicate with an eventstream, you need to specify a connection string for the namespace or the event hub. The following properties can be added to the standard Eventstream connection string using key-value pairs:

Property nameAliasesDescription
Partition KeyPartitionKeyMetric tag or field name to use for the event partition key if it exists. If both, tag and field, exist the tag is takes precedence, otherwise the value <default> is used
Max Message SizeMaxMessageSizeMaximum batch message size in bytes The allowable size depends on the Event Hub tier, see tier information for details. If unset the default size defined by Eventstream is used (currently 1,000,000 bytes)

Was this page helpful?

Thank you for your feedback!


The future of Flux

Flux is going into maintenance mode. You can continue using it as you currently are without any changes to your code.

Read more

New in InfluxDB 3.4

Key enhancements in InfluxDB 3.4 and the InfluxDB 3 Explorer 1.2.

See the Blog Post

InfluxDB 3.4 is now available for both Core and Enterprise, which introduces offline token generation for use in automated deployments and configurable license type selection that lets you bypass the interactive license prompt. InfluxDB 3 Explorer 1.2 is also available, which includes InfluxDB cache management and other new features.

For more information, check out: