Skip to main content

backend reporting via a worker/queue system

Project description

event-reporter

A Python wrapper for backend reporting via a worker/queue system.

travis

Codecov

System flow:

Store event quickly on webserver [e.g. within a flask endpoint]:

from event_reporter import EventReporter
from redis import StrictRedis

er = EventReporter(conn=StrictRedis())

er.store('ga', 'event', '<uuid4 clientid>', category='event_category', action='action_name', aip='1', uip='1.2.3.4', ds='web')

Fetch event within worker and dispatch to final destination:

from event_reporter import EventReporter
from redis import StrictRedis

er = EventReporter(conn=StrictRedis())

r = er.fetch()

er.dispatch(r)

Env vars used

  • EVENTREPORTER_QUEUE_NAME (redis key)
  • UA_ID (GA UA ID)
  • EVENTREPORTER_TTL (int: controls whether to set expire time for redis keys)
  • HONEYCOMB_WRITEKEY (optional)

Testing

export UA_ID='My_UA_ID'

nosetests -s

Dispatch Types

  • ga: GA
  • honey: honeycomb.io
  • slack: slack

Example slack event: Simple message

er.store('slack', 'event', '<uuid4>', webhook='<slack_webhook_uri>', message='text')

Example slack event: Blocks message

er.store('slack', 'event', '<uuid4>', webhook='<slack_webhook_uri>', blocks=<list_of_dicts>)

Example slack blocks format

[
	{
		"type": "section",
		"text": {
			"type": "mrkdwn",
			"text": "Hello
			}
	}
]

.. and check your GA property, honeycomb dash, or slack channel to see the data.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

event-reporter-1.1.0.tar.gz (4.8 kB view hashes)

Uploaded Source

Built Distribution

event_reporter-1.1.0-py3-none-any.whl (6.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page