簡體   English   中英

SnowPlow 分析模式

[英]SnowPlow Analytics Schemas

嘗試使用 arrays 為從性能洞察中檢索到的數據創建一個架構。

{
    "$schema": "http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#",
    "description": "Performance Insights",
    "self": {
        "vendor": "com.acme",
        "name": "performance_insights",
        "format": "jsonschema",
        "version": "1-0-3"
    },
    "type": "object",
    "properties": {
        "SeriesStartTime": {
            "type": "string",
            "format": "date-time",
            "description" : "timestamp"
        },
        "SeriesEndtime": {
            "type": "string",
            "format": "date-time",
            "description" : "timestamp"
        },
        "Identifier": {
            "description": "DataBase",
            "type": "string",
            "maxLength": 128
        },
        "MetricList": {
            "type": "array",
            "items":{
            "type": "object",
            "properties": {
                "Key": {
                    "type": "object",
                    "description": "Key Metric",
                    "properties": {
                        "Metric": {
                            "type": "string",
                            "description": "Load Avg"
                        },
                        "Dimensions": {
                            "properties": {
                                "tokenized_db": {
                                    "type": "string",
                                    "maxLength": 128
                                },
                                "tokenized_id": {
                                    "type": "string",
                                    "maxLength": 128
                                },
                                "tokenized_statement": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },                
                "DataPoints": {
                    "type": "array",
                    "items": {
                    "type": "object",
                    "properties": {
                        "Timestamp": {
                            "description" : "timestamp",
                            "type": "string",
                            "format": "date-time"
                        },
                        "Value": {
                            "description" : "Value",
                            "type": "number"
                        }
                    }
                }
                }
            }
        },
        "minItems": 1
    }
    
    },
    "additionalProperties": false
    
}

它正常,然后我向它發送數據:

{
      "schema": "iglu:com.acme/performance_insights/jsonschema/1-0-3",
      "data": {
        "SeriesStartTime": "2021-12-09T19:00:00-05:00",
        "SeriesEndtime": "2021-12-09T20:00:00-05:00",
        "Identifier": "db-5LHLHN5OGHFFFFMHRGDM",
        "MetricList": [
            {
                "Key": {
                    "Metric": "db.load.avg"
                },
                "DataPoints": [
                    {
                        "Timestamp": "2021-12-09T19:01:00-05:00",
                        "Value": 0.01818181818181818
                    },
                    {
                        "Timestamp": "2021-12-09T19:25:00-05:00",
                        "Value": 0.01818181818181818
                    }
                ]
            }]
    }
    }

我已經將模式推送到我的回購協議中,我已經推送了其他幾個可以工作但沒有復雜到接收數組數據的模式。

似乎當我故意把類型弄錯時,我在我的壞收集器中看到了錯誤。 當一切都如上正確時,我只看到

schemaKey:"iglu:com.acme/performance_insights/jsonschema/1-0-3"
schemaCriterion:"iglu:com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-*"

作為 failure.message

有任何想法嗎?

我正在做這些假設:

  • 您在示例中引用的壞行屬於tracker_protocol_violations類型
  • 它們屬於CriterionMismatch子類型。

當提供的負載是一個有效的 JSON 並且它是一個自我描述的負載時,就會發生這種類型的故障,但它的模式與關聯的模式標准不匹配。 failure.message向您顯示失敗事件的模式和需要匹配的模式標准。

在您的情況下,模式是com.acme/performance_insights/jsonschema/1-0-3但匹配的標准是com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-*

您看到此錯誤是因為自描述事件需要包含在com.snowplowanalytics.snowplow/payload_data模式中。 像這樣:

{
  "schema": "com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-4",
  "data": [
    "...": "...",
    "ue_px": "<base64-encoded-string>",
    "...": "..."
  ]  
}

其中<base64-encoded-string>是 base64 編碼的 JSON 和com.acme/performance_insights架構。

您可以在此處的 Snowplow 文檔中閱讀有關此類故障的更多信息。

暫無
暫無

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

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