【问题标题】:Streaming Application Insights 'availability' telemetry to SQL将 Application Insights 的“可用性”遥测流式传输到 SQL
【发布时间】:2017-03-01 01:23:31
【问题描述】:

我似乎无法使用流分析将可用性遥测推送到 Azure SQL 数据库。没有错误。只是没有插入数据。

输入

我已将输入设置到 Application Insights 导出的 blob 位置。我已经使用“示例数据”功能成功测试了这一点:

以下是抽取的示例数据示例(注意我已经简化了内容):

[
    {
        "availability": [ {
            "testRunId": "75e32865-36fa-4853-b9be-43e315a63f6e",
            "testTimestamp": "2016-10-19T11:38:58.7370000Z",
            "testName": "mytest-prod-pingtest",
            "runLocation": "BR : Sao Paulo",
            "durationMetric": {
                "name": "duration",
                "value": 14610000.0,
                "count": 1.0,
                "min": 14610000.0,
                "max": 14610000.0,
                "stdDev": 0.0,
                "sampledValue": 14610000.0
            },
            "result": "Pass",
            "count": 1
        } ],
        "internal": {...},
        "context": {...},
        "EventProcessedUtcTime": "2016-10-19T11:45:53.9144151Z"
    }
]

输出

输出配置到 Azure SQL DB 表 tt.AvailabilityRequests。测试成功:

此表具有以下架构:

CREATE TABLE [tt].[AvailabilityRequests](
    [Id] [uniqueidentifier] NOT NULL DEFAULT (newsequentialid()),
    [Timestamp] [datetime] NOT NULL,
    [AppInsightsTestRunId] [varchar](max) NULL,
    [TestName] [varchar](max) NULL,
    [RunLocation] [varchar](max) NULL,
    [IsSuccessful] [bit] NULL,
    [DurationInMilliseconds] [int] NULL,
    [InsertedDate] [datetime] NOT NULL DEFAULT (getdate())
)

查询

我配置了以下查询:

SELECT
    Flat.ArrayValue.testTimestamp as [Timestamp],
    Flat.ArrayValue.testRunId as [AppInsightsTestRunId],
    Flat.ArrayValue.testName as [TestName],
    Flat.ArrayValue.runLocation as [RunLocation],
    CASE WHEN Flat.ArrayValue.result = 'Pass' THEN 1 ELSE 0 END as [IsSuccessful],
    CAST(Flat.ArrayValue.durationMetric.value / Flat.ArrayValue.durationMetric.count / 10000 AS BIGINT) as [DurationInMilliseconds]
INTO
    availabilityRequests
FROM
    availability A
CROSS APPLY 
    GetElements(A.[availability]) as Flat

我正在使用请求遥测做类似的事情,这很好用:

【问题讨论】:

  • 我也有同样的问题,你有成功推送数据到 SQL 吗?
  • @AlexChoroshin 不幸的是没有。会及时通知您
  • 我成功将一些数据推送到SQL,这与我构建输入路径模式的方式有关。你能把你的路径发过来吗?
  • @AlexChoroshin Mine 定义为myappinsights_xyz/Availability/{date}/{time},YYYY-MM-DD 为日期格式,HH 为时间格式。但我不相信这是我的问题,因为我能够成功提取“样本数据”。您的查询与我的查询是否有任何不同?
  • @AlexChoroshin 它归结为我的 BIT 专栏。改成INT后,一切正常。

标签: azure-application-insights azure-stream-analytics


【解决方案1】:

Stream Analytics does not support the "boolean" type; SQL Server 中的 BIT。

将[IsSuccessful] 字段更改为[int] 后正在推送数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    相关资源
    最近更新 更多