I’d also recommend you to change schema’s metadata vendor to com.tripshock, but I don’t think it can cause any problems. Where are you getting this message from “Data validity : Could not fetch schema”? I don’t remember any Snowplow components producing it.
Another potential problem is that your schema has been added too late and Iglu Resolver cached its absense. To rule out this scenario, I’d recommend you to restart your enrichment and/or loader.
Here’s the test script I’m using: http://schemas.tripshock.com/index-test.html
I’m then examining the events using the Snowplow Analytics Debugger in Chrome. Here’s the screenshot. I did restart both collector and enricher but it didn’t make a difference. Is making a static repo and then pointing the resolver to it is all that’s needed? Is there anything else that needs to be configured? It’s my understanding is that the iglu client is part of the collector. Is that correct?
Sorry, I never used Snowplow Analytics Debugger and I suspect it doesn’t support custom schemas - I think it basically knows only about Iglu Central schemas and everything else won’t be found. And no, Collector also knows nothing about any schemas, the first schema-aware component is Enrich.
I meant that the iglu client is part of the enricher not the collector. What’s the best way to make sure unstructured events are being properly recognized then?
Since 1.0.0, enrich does periodcal pulling of schemas with “not found” response, so if you’re using latest assets you should be good.
Before 1.0.0 however, the only two ways were either to make sure the first event with the schema hits after you uploaded the schema or to reload enrich if you’ve deployed tracking before uploading the schema.
Your issue I believe is about Snowplow Analytics Debugger, not Enrich.
Use the Snowplow Inspector that @anton has mentioned which does support custom schemas (note that this is an open source project rather than a Snowplow one though)
Test sending your events to an instance of Snowplow Mini which will use stream-enrich to validate and you can visualise this data in Kibana.
Thanks Mike. We’ve done a good share of testing with Mini and used Kibana to analyze the events. Now, we are setting up the real SnowPlow and that’s the only thing that didn’t seem to work.
So, I have created Kinesis Firehose delivery streams for good and bad events and am now seeing the create_case in our bad events stream. This means that our repo that servers our custom schema is not being recognized by our enricher. Is that correct? Here’s what I’m seeing:
Can you share your schema and how you are sending the create case event? It looks like a http URI whereas typically you would expect it to be prefixed with iglu: as the protocol.
@alexb, your metaschema is wrong. You have "$schema": "http://schemas.tripshock.com/schemas/com.tripshock/product/jsonschema/1-0-0" but should have "$schema": "http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#" instead.