Self-describing event (Unstructured)

Hi everyone!

I have several questions and troubles with Self-describing event (Unstructured events) using Java Script tracker.

FYU:

  1. We have subdomain sp.napolke.ru where schema exists
  2. Im using GTM to initialize tracker
  3. We are using Scala Collector

Questions

My tracker looks like:

<script>
snowplow('trackSelfDescribingEvent', {
	schema: 'iglu:ru.napolke.sp/schemas/ru.napolke.sp/main_test/jsonschema/1-0-0'
    data: {
        name: 'test',
		price: '100',
    }
});
</script>

link on shema: http://sp.napolke.ru/schemas/ru.napolke.sp/main_test/jsonschema/1-0-0

Schema:

{
  "$schema": "https://sp.napolke.ru/schemas/ru.napolke.sp/main_test/jsonschema/1-0-0",
  "description": "Napolke snowplow autogenerated schema",
  "self": {
    "vendor": "ru.napolke.sp",
    "name": "main_test",
    "format": "jsonschema",
    "version": "1-0-0"
  },
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 500
    },
    "price": {
      "type": "number"
    }
  },
  "additionalProperties": false,
  "required": [
    "name"
  ]
}

Do we need to write link on schema like: 'iglu:ru.napolke.sp/schemas/ru.napolke.sp/main_test/jsonschema/1-0-0'
or
'iglu:sp.napolke.ru/schemas/ru.napolke.sp/main_test/jsonschema/1-0-0' ?

  1. Does SnowPlow Debugger works correctly?
    I found that there 2 schemas and i don’t understand why

Can i just place schema on website and not making repos?

Actually i don’t understand:

  1. Syntax
  2. Where should i place schema
  3. How should i validate it

Thanks for help!

Hi @rodion_zhukov,

Do we need to write link on schema like: 'iglu:ru.napolke.sp/schemas/ru.napolke.sp/main_test/jsonschema/1-0-0' or 'iglu:sp.napolke.ru/schemas/ru.napolke.sp/main_test/jsonschema/1-0-0' ?

Neither of these is correct. You need to use iglu:ru.napolke.sp/main_test/jsonschema/1-0-0. You’re not specifying HTTP URI, but Iglu URI. Iglu Client in Stream/Spark Enrich will fetch it based on your resolver configuration. Collector knows nothing about your schemas.

Sorry I never used Snowplow Debugger, but it seems it just tells you that your format of Iglu URI is invalid.

Syntax

JS syntax is fine.

Where should I place schema

Current placement also looks okay.

How should i validate it

I think what you’re missing is enrich and loader step. If you installed just a collector - you cannot do much, it just collects data, doesn’t validate nor transoform into canonical format. There’s a recent thread explaining how to install those components.