Analytics

Use ConfigDirector with your analytics tool. Send exposures from your application to compare an experiment's variations there, and mark every experiment run on the tool's charts. Which tools support which, what a marker says, delivery, and what happens when a tool stops accepting the markers.

Introduction

ConfigDirector works with your analytics tool in two ways, and you can use either or both:

  • Send exposures from your application. Your application tells the tool which variation of an experiment each user saw, so you can compare the variations next to the events you already track there. You add a handler to your code once.
  • Mark experiment runs on your charts. ConfigDirector posts a marker to the tool when a run starts, its split changes, a variation is shipped or the run is stopped, so the team reads the chart without looking up when each change happened. You set this up in the dashboard, with no code.

Supported tools

Each tool has its own page, which covers everything ConfigDirector does with that tool.

ToolSend exposuresMark runs on charts
AmplitudeYesYes
DatadogNoYes
Google Analytics 4YesNo
GrafanaNoYes
MixpanelYesYes
PostHogYesYes
SegmentYesNo

Send exposures from your application

You don't need an analytics tool to compare an experiment's variations: ConfigDirector compares them on the events your application tracks. Sending exposures is for comparing them in your tool as well, next to the events you already track there.

The exposures go straight from your application to the tool, so nothing passes through ConfigDirector. Each tool reads its own event, so its page names that event and has a handler to copy for the JavaScript and Node.js SDKs and their OpenFeature providers. The Experiments guide lists the hook for every other SDK.

Mark experiment runs on your charts

You set this up as an integration, a connection from your organization to the tool, under Integrations in the dashboard. You give it the tool's own settings, such as the data center or the project id, and the credential the tool uses to authenticate. ConfigDirector composes the request from them, posts a marker for each run event, retries failures for about ten hours and keeps every delivery on record for 30 days. Nothing runs in your application. Each tool's page lists the settings it needs and the steps to create the integration.

Integrations belong to the organization, and only owners and admins can see and manage them. They work the same on Free and Pay as you go. An organization can have up to 10 integrations, counted apart from its webhooks.

An integration receives the four experiment run events and nothing else: no change events and no alerts. To receive those, create a webhook.

What a marker says

Each run event becomes one marker. The marker's title is the config key and the environment name, checkout-cta-copy · Production, and its text says what happened and who did it, followed by the config's URL in the dashboard:

  • Run started: control 50%, treatment-a 50% by Dana Whitfield, with each rollout's shares, , in <conditions> after a conditional rollout's shares, and ; between rollouts
  • Split changed: control 60%, treatment-a 40% by Dana Whitfield
  • Shipped treatment-a by Deploy bot
  • Stopped by Dana Whitfield

The marker's time is the moment the run event happened, in the tool's own format. Each tool shows the title and the text its own way, and your tool's page says where the marker appears.

Endpoint URL override

ConfigDirector composes the address it posts to from the tool's settings, and the integration's page shows it under Posts to. If the tool moves its API before ConfigDirector does, or you route the markers through a gateway of your own, open Advanced on the integration's form and set an Endpoint URL. It replaces the composed address entirely, while the credential is still sent the same way. The URL follows the webhook URL rules: https:// and a host that resolves to a public address. A Grafana URL and a self-hosted PostHog host follow the same rules. Leave the field empty to go back to the composed address.

Editing an integration

The integration's page shows when its credentials were saved and by whom; the values are never shown again. When you edit the integration, the credentials show as saved: leave them alone to keep them, or click Replace and paste the new ones. The keys of an Amplitude or Mixpanel integration are replaced together. Changing a setting, such as the data center or the project id, moves the markers to the new address from the next run event on. The tool cannot change: create another integration for another tool.

Delivery

Deliveries follow the same rules as webhook deliveries: a marker is normally posted within a few seconds of the run event, succeeds when the tool answers with any 2xx status within 10 seconds, and is otherwise retried over about ten and a half hours before it is failed. The request also carries the Standard Webhooks headers, which the tools ignore.

The integration's page lists its Deliveries from the last 30 days, newest first, with Failures only to show just the failed ones. Each delivery shows the run event, its status, the number of attempts and the latest attempt's result, and expands to the body posted to the tool and the first 1 KB of the tool's response or the connection error. Resend posts a delivery's body again right away; if that attempt fails, the delivery is marked failed and is not tried again on its own.

When an integration is disabled

An owner or admin can disable an integration from its page. ConfigDirector also disables an integration on its own when deliveries to it were attempted on each of the last three days and none of them succeeded, which usually means the tool rejects the credential. Then it:

  • abandons the deliveries still waiting for an attempt,
  • marks the integration Disabled in the list, saying it was disabled after repeated failures, and shows the tool's last response on its page,
  • raises the Integration disabled after repeated failures alert, which is Critical, goes to owners and admins, and is emailed right away unless they turned that off in their email preferences.

While an integration is disabled, nothing is posted, and enabling it again does not mark the runs that started or ended in between. Replace the credential or fix the settings from Edit, then click Enable on the integration's page; the alert resolves when the integration is enabled again or deleted.

Limits

LimitValue
Integrations per organization10, counted apart from webhooks
Name200 characters
Credentials1,024 characters each
Response time10 seconds
Delivery history30 days, after which deliveries are deleted and can no longer be resent

Managing integrations with the Admin API

Everything on the Integrations page is also available through the Admin API: listing, creating, updating and deleting integrations, sending a test marker, listing deliveries and resending one. The API token needs the integrations:manage permission, which only owners and admins can grant.