{"slug":"integrate-cribl-with-aperture","title":"Integrate Cribl with Aperture","tags":["tailscale"],"agent_summary":"Last validated: Apr 9, 2026","trigger_phrases":[],"runnable":false,"markdown":"\r\n# Integrate Cribl with Aperture\r\n\r\nLast validated: Apr 9, 2026\r\n\r\nAperture by Tailscaleis currently [in alpha](https://tailscale.com/docs/reference/tailscale-release-stages#alpha).\r\n\r\n[Cribl](https://cribl.io/) is a data pipeline platform that routes, reduces, and enriches observability data. By connecting Aperture to Cribl, you can route AI usage data through your existing Cribl pipelines and forward it to any of Cribl's supported destinations (Splunk, Datadog, S3, and others).\r\n\r\nAperture sends data to Cribl using the [hooks system](https://tailscale.com/docs/aperture/configuration#hooks). You configure a webhook endpoint in Cribl, then add a hook in Aperture that sends event data to that endpoint when requests match your grant conditions.\r\n\r\n## [Prerequisites](https://tailscale.com/docs/aperture/how-to/integrate-cribl\\#prerequisites)\r\n\r\nBefore you begin, ensure you have the following:\r\n\r\n- A running [Aperture instance](https://tailscale.com/docs/aperture/get-started) accessible from your device.\r\n- A [Cribl Stream or Cribl Cloud](https://cribl.io/) deployment with a configured [webhook source](https://docs.cribl.io/stream/sources-webhook/).\r\n\r\n## [Configure the Cribl webhook source](https://tailscale.com/docs/aperture/how-to/integrate-cribl\\#configure-the-cribl-webhook-source)\r\n\r\nGet the webhook URL and authentication token from your Cribl deployment. You'll use these to configure a hook in Aperture that sends data to Cribl.\r\n\r\n1. In your Cribl deployment, create a webhook source to receive data from Aperture.\r\n2. Note the webhook URL and any authentication token Cribl provides. You'll use these when configuring the hook in Aperture.\r\n\r\nFor details on configuring webhook sources in Cribl, refer to the [Cribl documentation](https://docs.cribl.io/).\r\n\r\n## [Configure the Aperture hook](https://tailscale.com/docs/aperture/how-to/integrate-cribl\\#configure-the-aperture-hook)\r\n\r\nTo integrate Cribl with Aperture, configure a hook in Aperture that points to your Cribl endpoint. This lets you send request data to Cribl for processing and routing.\r\n\r\n1. Open the Aperture dashboard at `http://ai/ui/`.\r\n\r\n2. Go to the **Settings** page and open the JSON editor.\r\n\r\n3. Add a `cribl` entry in the `hooks` section with the webhook URL from your Cribl source.\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n```json\r\n\"hooks\": {\r\n       \"cribl\": {\r\n           \"url\": \"YOUR_CRIBL_WEBHOOK_URL\",\r\n           \"apikey\": \"YOUR_CRIBL_AUTH_TOKEN\"\r\n       }\r\n}\r\n```\r\n\r\n\r\n\r\nReplace `YOUR_CRIBL_WEBHOOK_URL` with the URL of your Cribl webhook source and `YOUR_CRIBL_AUTH_TOKEN` with the authentication token from Cribl.\r\n\r\n4. Add a grant with a `send_hooks` entry that references the `cribl` hook. The grant controls which requests trigger the hook and what data Aperture sends.\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n```json\r\n\"grants\": [\\\r\n       {\\\r\n           \"src\": [\"*\"],\\\r\n           \"app\": {\\\r\n               \"tailscale.com/cap/aperture\": [\\\r\n                   {\\\r\n                       \"send_hooks\": [\\\r\n                           {\\\r\n                               \"name\": \"cribl\",\\\r\n                               \"events\": [\"entire_request\"],\\\r\n                               \"send\": [\"tools\", \"estimated_cost\", \"request_body\", \"response_body\"]\\\r\n                           }\\\r\n                       ]\\\r\n                   }\\\r\n               ]\\\r\n           }\\\r\n       }\\\r\n]\r\n```\r\n\r\n\r\n\r\nThis configuration sends data for every request from all users. Adjust the `events` and `send` fields based on what data you want to route through Cribl. To limit which users' requests trigger the hook, replace `\"*\"` in the `src` field with specific user identities or tags.\r\n\r\n5. Save the configuration.\r\n\r\n\r\nFor details on hook events and send types, refer to the [hooks configuration reference](https://tailscale.com/docs/aperture/configuration#hooks).\r\n\r\n## [Verify the integration](https://tailscale.com/docs/aperture/how-to/integrate-cribl\\#verify-the-integration)\r\n\r\nAfter configuring the Cribl hook, verify that Aperture is sending data to Cribl and that Cribl is routing it to the expected destination.\r\n\r\n1. Send a request through Aperture that matches your grant conditions.\r\n2. Check your Cribl deployment to confirm the event data arrives at the webhook source.\r\n3. Verify that your Cribl pipeline routes the data to the expected destination.\r\n\r\nIf data doesn't appear, check that the `send_hooks` name matches the key in your `hooks` section and that the grant's `src` field includes the user who made the request.\r\n\r\n## [Next steps](https://tailscale.com/docs/aperture/how-to/integrate-cribl\\#next-steps)\r\n\r\n- [Build a custom webhook](https://tailscale.com/docs/aperture/how-to/build-custom-webhook) to send Aperture data to other services.\r\n- Learn about hook events and data types in the [configuration reference](https://tailscale.com/docs/aperture/configuration#hooks).\r\n- Explore other [external integrations](https://tailscale.com/docs/aperture/integrate) for Aperture.\r\n\r\n![Project Logo](https://cdn.brandfetch.io/tailscale.com/fallback/lettermark/theme/dark/h/256/w/256/icon?c=1bfwsmEH20zzEfSNTed)\r\n\r\nAsk AI\r\n\r\nreCAPTCHA\r\n\r\nRecaptcha requires verification.\r\n\r\nprotected by **reCAPTCHA**\r\n","html":"<h1>Integrate Cribl with Aperture</h1>\n<p>Last validated: Apr 9, 2026</p>\n<p>Aperture by Tailscaleis currently <a href=\"https://tailscale.com/docs/reference/tailscale-release-stages#alpha\">in alpha</a>.</p>\n<p><a href=\"https://cribl.io/\">Cribl</a> is a data pipeline platform that routes, reduces, and enriches observability data. By connecting Aperture to Cribl, you can route AI usage data through your existing Cribl pipelines and forward it to any of Cribl's supported destinations (Splunk, Datadog, S3, and others).</p>\n<p>Aperture sends data to Cribl using the <a href=\"https://tailscale.com/docs/aperture/configuration#hooks\">hooks system</a>. You configure a webhook endpoint in Cribl, then add a hook in Aperture that sends event data to that endpoint when requests match your grant conditions.</p>\n<h2><a href=\"https://tailscale.com/docs/aperture/how-to/integrate-cribl#prerequisites\">Prerequisites</a></h2>\n<p>Before you begin, ensure you have the following:</p>\n<ul>\n<li>A running <a href=\"https://tailscale.com/docs/aperture/get-started\">Aperture instance</a> accessible from your device.</li>\n<li>A <a href=\"https://cribl.io/\">Cribl Stream or Cribl Cloud</a> deployment with a configured <a href=\"https://docs.cribl.io/stream/sources-webhook/\">webhook source</a>.</li>\n</ul>\n<h2><a href=\"https://tailscale.com/docs/aperture/how-to/integrate-cribl#configure-the-cribl-webhook-source\">Configure the Cribl webhook source</a></h2>\n<p>Get the webhook URL and authentication token from your Cribl deployment. You'll use these to configure a hook in Aperture that sends data to Cribl.</p>\n<ol>\n<li>In your Cribl deployment, create a webhook source to receive data from Aperture.</li>\n<li>Note the webhook URL and any authentication token Cribl provides. You'll use these when configuring the hook in Aperture.</li>\n</ol>\n<p>For details on configuring webhook sources in Cribl, refer to the <a href=\"https://docs.cribl.io/\">Cribl documentation</a>.</p>\n<h2><a href=\"https://tailscale.com/docs/aperture/how-to/integrate-cribl#configure-the-aperture-hook\">Configure the Aperture hook</a></h2>\n<p>To integrate Cribl with Aperture, configure a hook in Aperture that points to your Cribl endpoint. This lets you send request data to Cribl for processing and routing.</p>\n<ol>\n<li>\n<p>Open the Aperture dashboard at <code>http://ai/ui/</code>.</p>\n</li>\n<li>\n<p>Go to the <strong>Settings</strong> page and open the JSON editor.</p>\n</li>\n<li>\n<p>Add a <code>cribl</code> entry in the <code>hooks</code> section with the webhook URL from your Cribl source.</p>\n</li>\n</ol>\n<pre><code class=\"language-json\">\"hooks\": {\r\n       \"cribl\": {\r\n           \"url\": \"YOUR_CRIBL_WEBHOOK_URL\",\r\n           \"apikey\": \"YOUR_CRIBL_AUTH_TOKEN\"\r\n       }\r\n}\n</code></pre>\n<p>Replace <code>YOUR_CRIBL_WEBHOOK_URL</code> with the URL of your Cribl webhook source and <code>YOUR_CRIBL_AUTH_TOKEN</code> with the authentication token from Cribl.</p>\n<ol start=\"4\">\n<li>Add a grant with a <code>send_hooks</code> entry that references the <code>cribl</code> hook. The grant controls which requests trigger the hook and what data Aperture sends.</li>\n</ol>\n<pre><code class=\"language-json\">\"grants\": [\\\r\n       {\\\r\n           \"src\": [\"*\"],\\\r\n           \"app\": {\\\r\n               \"tailscale.com/cap/aperture\": [\\\r\n                   {\\\r\n                       \"send_hooks\": [\\\r\n                           {\\\r\n                               \"name\": \"cribl\",\\\r\n                               \"events\": [\"entire_request\"],\\\r\n                               \"send\": [\"tools\", \"estimated_cost\", \"request_body\", \"response_body\"]\\\r\n                           }\\\r\n                       ]\\\r\n                   }\\\r\n               ]\\\r\n           }\\\r\n       }\\\r\n]\n</code></pre>\n<p>This configuration sends data for every request from all users. Adjust the <code>events</code> and <code>send</code> fields based on what data you want to route through Cribl. To limit which users' requests trigger the hook, replace <code>\"*\"</code> in the <code>src</code> field with specific user identities or tags.</p>\n<ol start=\"5\">\n<li>Save the configuration.</li>\n</ol>\n<p>For details on hook events and send types, refer to the <a href=\"https://tailscale.com/docs/aperture/configuration#hooks\">hooks configuration reference</a>.</p>\n<h2><a href=\"https://tailscale.com/docs/aperture/how-to/integrate-cribl#verify-the-integration\">Verify the integration</a></h2>\n<p>After configuring the Cribl hook, verify that Aperture is sending data to Cribl and that Cribl is routing it to the expected destination.</p>\n<ol>\n<li>Send a request through Aperture that matches your grant conditions.</li>\n<li>Check your Cribl deployment to confirm the event data arrives at the webhook source.</li>\n<li>Verify that your Cribl pipeline routes the data to the expected destination.</li>\n</ol>\n<p>If data doesn't appear, check that the <code>send_hooks</code> name matches the key in your <code>hooks</code> section and that the grant's <code>src</code> field includes the user who made the request.</p>\n<h2><a href=\"https://tailscale.com/docs/aperture/how-to/integrate-cribl#next-steps\">Next steps</a></h2>\n<ul>\n<li><a href=\"https://tailscale.com/docs/aperture/how-to/build-custom-webhook\">Build a custom webhook</a> to send Aperture data to other services.</li>\n<li>Learn about hook events and data types in the <a href=\"https://tailscale.com/docs/aperture/configuration#hooks\">configuration reference</a>.</li>\n<li>Explore other <a href=\"https://tailscale.com/docs/aperture/integrate\">external integrations</a> for Aperture.</li>\n</ul>\n<p><img src=\"https://cdn.brandfetch.io/tailscale.com/fallback/lettermark/theme/dark/h/256/w/256/icon?c=1bfwsmEH20zzEfSNTed\" alt=\"Project Logo\"></p>\n<p>Ask AI</p>\n<p>reCAPTCHA</p>\n<p>Recaptcha requires verification.</p>\n<p>protected by <strong>reCAPTCHA</strong></p>\n"}