All snowplow images are taken from their repository: snowplow-docker
Other components:
- Elasticsearch - for storage
- Kibana - for visualization
- nsq - for realtime messaging
- elasticsearch-head - for interacting with elasticsearch
- iglu repository - for hosting your snowplow schemas
- If necessary, put your iglu schemas into the 'iglu' folder.
- Run
docker-compose up -d
to pull and start up all containers. - Set up a tracker to point to
DOCKER_HOST:8080
-
Scala stream collector: 8080
-
NSQ admin: 4171
-
Kibana: 5601
-
Elasticsearch head: 9100
-
Elasticsearch: 9200
-
Iglu repository: 80
This is useful as a Snowplow Mini alternative, demonstrating the whole Snowplow realtime pipeline stack and allowing instant event visualization in Kibana. Example use case would be debugging Snowplow Javascript script enrichment without pushing your script to production or even waiting for the batch pipeline to run to test the results of this enrichment.
- Add your JSON enrichment config file to the
config/enrichments
folder. - Add your custom self-describing JSON for the derived contexts into the
iglu/schemas
folder. - Restart
stream-enrich
container either via CLI or Portainer UI. - Hit the testing page, that has your tracker set up to stream-collector.
- View the enrichment results directly in Kibana.
- Loglevels for snowplow compontents can be easily changed via
environment
variables passed on runtime indocker-compose.yml
config. - Printing values to stdout in custom Javascript enrichment can be viewed in docker logs:
docker logs -f stream-enrich
. - Bad events will land in elasticsearch with
bad
type.