Microsoft Bolsters Azure Observability with OpenTelemetry Support for Logic Apps and Functions

In a significant move to advance open-standards and enhance monitoring capabilities across its cloud platform, Microsoft has announced expanded support for OpenTelemetry in Azure Logic Apps (Standard and Hybrid) and a public preview for Azure Functions. This integration empowers developers and operations teams with a standardized approach to telemetry data, enabling deeper insights, improved diagnostics, and greater interoperability with a wide array of observability backends.

The introduction of OpenTelemetry, a Cloud Native Computing Foundation (CNCF) project, marks a strategic shift towards a more unified and vendor-agnostic framework for collecting logs, traces, and metrics. This allows for seamless integration with popular tools like Azure Monitor, Grafana Tempo, and Jaeger, providing a holistic view of application performance and health.

Standardizing Telemetry for Serverless and Integration Workloads

Azure Logic Apps and Azure Functions are central to building automation and event-driven architectures on Azure. The native integration of OpenTelemetry offers several key benefits for applications built on these services:

  • Unified Observability: By adopting a single, open standard, developers can achieve consistent telemetry across different services and even cloud providers, breaking down data silos and simplifying monitoring.
  • Enhanced Correlation: The integration facilitates better correlation of telemetry data between the host environment and the application code, leading to more precise and efficient troubleshooting.
  • Increased Flexibility: Organizations are no longer tied to a specific vendor's monitoring tools. OpenTelemetry's extensible architecture allows for the export of telemetry data to a variety of observability platforms.
  • Improved Diagnostics: For hybrid and on-premises deployments of Logic Apps, OpenTelemetry significantly boosts diagnostic capabilities beyond the default Application Insights telemetry.

Getting Started: Configuration and Implementation

Enabling OpenTelemetry for both Azure Logic Apps and Functions is a straightforward process, primarily involving modifications to the host.json file and the configuration of application settings.

For Azure Logic Apps (Standard and Hybrid):

To activate OpenTelemetry, users need to update the host.json file by setting the telemetryMode to "OpenTelemetry". Subsequently, the destination for the telemetry data is defined by setting the OTEL_EXPORTER_OTLP_ENDPOINT environment variable to the desired OTLP exporter URL. Optional headers can also be configured using OTEL_EXPORTER_OTLP_HEADERS. These settings can be managed through Visual Studio Code for local development or directly in the Azure Portal for deployed applications.

Currently, OpenTelemetry for Logic Apps supports HTTP, Service Bus, and Event Hub triggers. However, it's important to note that metrics export is not yet supported in the current release.

For Azure Functions (Public Preview):

The process for Azure Functions is similar, requiring the same telemetryMode setting in the host.json file. As this feature is in public preview, there are some limitations to be aware of. For instance, the Azure portal's log streaming and recent invocation traces are not supported when the host is configured for OpenTelemetry. Additionally, while standards-based tracing is a key benefit, full functionality across all trigger types and languages is still evolving.

Microsoft provides an AzureMonitorOpenTelemetryExporter to streamline the process of sending data to Azure Monitor Application Insights. For developers using .NET isolated worker functions, specific packages like Microsoft.Azure.Functions.Worker.OpenTelemetry are available to bridge function trigger events with OpenTelemetry for comprehensive tracing.

A Broader Strategy for Open Observability

This announcement is a key part of Microsoft's wider commitment to an OpenTelemetry-first approach across its cloud offerings. This strategy includes the Azure Monitor OpenTelemetry Distro, a supported distribution of OpenTelemetry SDKs for various languages, and the instrumentation of Azure SDKs to emit OpenTelemetry-compliant data. Furthermore, emerging platforms like .NET Aspire are being built with observability as a core, default feature, leveraging OpenTelemetry from the ground up.

The Road Ahead

The expanded support for OpenTelemetry in Azure Logic Apps and Functions is a significant step forward for observability in the Azure ecosystem. While some features are still in preview and have limitations, the direction is clear: a future where open standards pave the way for more powerful, flexible, and interoperable monitoring of cloud-native and hybrid applications. As Microsoft continues to invest in and expand its OpenTelemetry support, developers and SREs can look forward to a more unified and insightful observability experience.