簡體   English   中英

使用 OpenTelemetry 在 Azure 上的 App Insights 中的組件名稱不正確

[英]Incorrect component name in App Insights on Azure, using OpenTelemetry

我正在使用 OpenTelemetry 來跟蹤我在 Azure 上運行的服務。

Azure 應用程序 Map 顯示發送跟蹤的組件的名稱不正確。 它還發送了不正確的Cloud RoleName ,這可能就是發生這種情況的原因。 App Insights 顯示的Cloud RoleName是 Function 應用程序名稱,而不是 Function 名稱。

在我的 Azure Function (稱為FirewallCreate )中,我使用以下 util 方法開始跟蹤:

def get_otel_new_tracer(name=__name__):
    # Setup a TracerProvider(). For more details read:
    # https://docs.microsoft.com/en-us/azure/azure-monitor/app/opentelemetry-enable?tabs=python#set-the-cloud-role-name-and-the-cloud-role-instance
    trace.set_tracer_provider(
        TracerProvider(
            resource=Resource.create(
                {
                    SERVICE_NAME: name,
                    SERVICE_NAMESPACE: name,
                    # SERVICE_INSTANCE-ID: "my-instance-id"
                }
            )
        )
    )

    # Send messages to Exporter in batches
    span_processor = BatchSpanProcessor(
    AzureMonitorTraceExporter.from_connection_string(
        os.environ["TRACE_APPINSIGHTS_CONNECTION_STRING"]
        )
    )
    trace.get_tracer_provider().add_span_processor(span_processor)

    return trace.get_tracer(name)


def firewall_create():
    tracer = get_otel_new_tracer("FirewallCreate")
    with tracer.start_new_span("span-firewall-create") as span:
        # do some stuff
        ...

跟蹤顯示另一個function 名稱,在同一個 function 應用程序中(附圖片)。 在此處輸入圖像描述

  1. 我可能會犯什么錯誤?
  2. 該組件有0 ms0 calls 這是什么意思? 如何解讀它?

嘿,感謝您使用 Application Insights 試用 OpenTelemetry,首先,您使用的是azure-monitor-opentelemetry-exporter嗎,如果是,您使用的是什么版本? 我還在線回答了您的問題:

我可能會犯什么錯誤?

您要嘗試將組件設置為什么名稱? 默認情況下,導出器將嘗試將您的cloudRoleName設置為<service_namespace>.<service_name>您在Resource中設置。 如果<service_namespace>未填充,則采用<service_name>的值。

該組件有 0 毫秒和 0 次調用。 這是什么意思? 如何解讀它?

這是您的應用程序 map 中的唯一節點嗎? 我們首先需要確定這個節點是由導出器創建的還是由函數運行時本身創建的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM