Azure Eventhub Observer setup guide - snowplow-archive/sauna GitHub Wiki

HOME > GUIDE FOR DEVOPS > SETTING UP SAUNA > OBSERVERS > Azure Eventhub Observer setup guide

This responder has not yet been released.

Contents

Overview

This observer consumes an Azure Eventhub stream for records arriving; each record will be processed as a Sauna command, which will trigger an appropriate responder action.

The Azure stream can be homogeneous (all commands trigger a single responder) or heterogeneous (commands trigger different responders).

Compatibility

This responder will be released in Sauna v0.4.0.

Azure Eventhub setup

  • Create a new namespace blade in the Azure portal
  • Create a new eventhub under the newly created namespace blade setting the partition count and message retention.
  • Obtain the management keys for the event hub and setup the Sauna config schema
  • Follow the steps more clearly defined in the tutorial

Sauna setup

Avro Schema

The Azure Eventhub Observer must be configured using a self-describing Avro which validates against this Schema:

iglu:com.snowplowanalytics.sauna.observers/AzureEventHubConfig/avro/1-0-0

Example

We can enable this observer by placing following Avro configurations to the configuration directory (filename must have extension .avro or .json):

{
    "schema": "iglu:com.snowplowanalytics.sauna.observers/AzureEventhubConfig/avro/1-0-0",

    "data": {
        "enabled": true,
        "id": "com.acme.MyEventHubObserver",
        "parameters": {
            "namespace": {
                "name": "...",
            },
            "sharedAccessSignature": {
                "name": "....",
                "key": "...",
            },
            "storageAccount": {
            	"name": "...",
            	"key" : "..."
            }
        }
    }
}

Where:

  • id uniquely defines this observer, and is used to track which records have already been processed
  • namespace.name provides the service bus namespace name
  • sharedAccessSignature.name is the shared access signtature key name
  • sharedAccessSignature.key is the shared access signature key
  • storageAccount.name is the storage account name
  • storageAccount.key is the storage account key

Troubleshooting

⚠️ **GitHub.com Fallback** ⚠️