New! Redpanda Agentic Data Plane is here: a governed, high-performance foundation for AI agents. Learn more
Redpanda logo Connect
Cloud Self-Managed Connect Labs
or

What do you think of this page?

Let us know more:

Let us contact you about your feedback:

Please complete the “I'm not a robot” checkbox before submitting.

    • Overview
    • Get Started
      • Introduction to Redpanda Connect
      • What’s New
      • Quickstarts
        • CLI
        • Helm Chart
      • Licensing
      • Versioning
    • Install and Upgrade
      • CLI
      • Helm Chart
      • Prebuilt Binary
      • Build from Source
    • MCP Servers
      • Overview
      • Quickstart
      • Concepts
      • Create a Tool
      • Best Practices
      • Tool Patterns
      • Troubleshoot
    • Configuration
      • Resources
      • Allow and Deny Lists
      • Message Batching
      • Windowed Processing
      • Metadata
      • Error Handling
      • Interpolation
      • Secrets
      • Field Paths
      • Processing Pipelines
      • Unit Testing
      • Templating
      • Dynamic Inputs and Outputs
      • Using CUE
      • Telemetry
    • Components Catalog
      • HTTP
      • Inputs
        • amqp_0_9
        • amqp_1
        • aws_kinesis
        • aws_s3
        • aws_sqs
        • azure_blob_storage
        • azure_cosmosdb
        • azure_queue_storage
        • azure_table_storage
        • batched
        • beanstalkd
        • broker
        • cassandra
        • cockroachdb_changefeed
        • csv
        • discord
        • dynamic
        • file
        • gcp_bigquery_select
        • gcp_cloud_storage
        • gcp_pubsub
        • gcp_spanner_cdc
        • generate
        • git
        • hdfs
        • http_client
        • http_server
        • inproc
        • kafka
        • kafka_franz
        • mongodb
        • mongodb_cdc
        • mqtt
        • mysql_cdc
        • nanomsg
        • nats
        • nats_jetstream
        • nats_kv
        • nats_stream
        • nsq
        • ockam_kafka
        • otlp_http
        • otlp_grpc
        • parquet
        • postgres_cdc
        • pulsar
        • read_until
        • redis_list
        • redis_pubsub
        • redis_scan
        • redis_streams
        • redpanda
        • redpanda_common
        • redpanda_migrator
        • legacy_redpanda_migrator
        • legacy_redpanda_migrator_offsets
        • redpanda_migrator_bundle
        • microsoft_sql_server_cdc
        • resource
        • schema_registry
        • sequence
        • sftp
        • slack
        • slack_users
        • socket
        • socket_server
        • spicedb_watch
        • splunk
        • sql_raw
        • sql_select
        • stdin
        • subprocess
        • tigerbeetle_cdc
        • timeplus
        • twitter_search
        • websocket
        • zmq4
      • Scanners
        • avro
        • chunker
        • csv
        • decompress
        • json_array
        • json_documents
        • lines
        • re_match
        • skip_bom
        • switch
        • tar
        • to_the_end
      • Processors
        • archive
        • avro
        • awk
        • aws_bedrock_chat
        • aws_bedrock_embeddings
        • aws_dynamodb_partiql
        • aws_lambda
        • azure_cosmosdb
        • benchmark
        • bloblang
        • bounds_check
        • branch
        • cache
        • cached
        • cohere_chat
        • cohere_embeddings
        • cohere_rerank
        • catch
        • command
        • compress
        • couchbase
        • crash
        • decompress
        • dedupe
        • ffi
        • for_each
        • gcp_bigquery_select
        • gcp_vertex_ai_chat
        • gcp_vertex_ai_embeddings
        • google_drive_download
        • google_drive_list_labels
        • google_drive_search
        • grok
        • group_by
        • group_by_value
        • http
        • insert_part
        • javascript
        • jira
        • jmespath
        • jq
        • json_schema
        • log
        • mapping
        • metric
        • mongodb
        • msgpack
        • mutation
        • nats_kv
        • nats_request_reply
        • noop
        • ollama_chat
        • ollama_embeddings
        • ollama_moderation
        • openai_chat_completion
        • openai_embeddings
        • openai_image_generation
        • openai_speech
        • openai_transcription
        • openai_translation
        • parallel
        • parquet
        • parquet_decode
        • parquet_encode
        • parse_log
        • processors
        • protobuf
        • qdrant
        • rate_limit
        • redpanda_data_transform
        • redis
        • redis_script
        • resource
        • retry
        • schema_registry_decode
        • schema_registry_encode
        • select_parts
        • sentry_capture
        • slack_thread
        • sleep
        • split
        • sql
        • sql_insert
        • sql_raw
        • sql_select
        • subprocess
        • switch
        • sync_response
        • text_chunker
        • try
        • unarchive
        • wasm
        • while
        • workflow
        • xml
      • Outputs
        • amqp_0_9
        • amqp_1
        • aws_dynamodb
        • aws_kinesis
        • aws_kinesis_firehose
        • aws_s3
        • aws_sns
        • aws_sqs
        • azure_blob_storage
        • azure_cosmosdb
        • azure_data_lake_gen2
        • azure_queue_storage
        • azure_table_storage
        • beanstalkd
        • broker
        • cache
        • cassandra
        • couchbase
        • cyborgdb
        • cypher
        • discord
        • drop
        • drop_on
        • dynamic
        • elasticsearch_v8
        • elasticsearch_v9
        • fallback
        • file
        • gcp_bigquery
        • gcp_cloud_storage
        • gcp_pubsub
        • hdfs
        • http_client
        • http_server
        • inproc
        • kafka
        • kafka_franz
        • mongodb
        • mqtt
        • nanomsg
        • nats
        • nats_jetstream
        • nats_kv
        • nats_stream
        • nsq
        • ockam_kafka
        • opensearch
        • otlp_http
        • otlp_grpc
        • pinecone
        • pulsar
        • pusher
        • qdrant
        • questdb
        • redis_hash
        • redis_list
        • redis_pubsub
        • redis_streams
        • redpanda
        • redpanda_common
        • redpanda_migrator
        • redpanda_migrator_bundle
        • legacy_redpanda_migrator
        • legacy_redpanda_migrator_offsets
        • reject
        • reject_errored
        • resource
        • retry
        • schema_registry
        • sftp
        • slack_post
        • slack_reaction
        • snowflake_put
        • snowflake_streaming
        • socket
        • splunk_hec
        • sql
        • sql_insert
        • sql_raw
        • stdout
        • subprocess
        • switch
        • sync_response
        • timeplus
        • websocket
        • zmq4
      • Caches
        • aws_dynamodb
        • aws_s3
        • couchbase
        • file
        • gcp_cloud_storage
        • lru
        • memcached
        • memory
        • mongodb
        • multilevel
        • nats_kv
        • noop
        • redpanda
        • redis
        • ristretto
        • sql
        • ttlru
      • Rate Limits
        • local
        • redis
      • Buffers
        • memory
        • sqlite
        • none
        • system_window
      • Metrics
        • aws_cloudwatch
        • logger
        • statsd
        • influxdb
        • none
        • json_api
        • prometheus
      • Tracers
        • gcp_cloudtrace
        • none
        • jaeger
        • open_telemetry_collector
        • redpanda
      • Redpanda
      • Logger
    • Plugins
    • Bloblang
      • Walkthrough
      • Functions
      • Methods
      • Arithmetic
      • Advanced
      • Playground
    • Guides
      • Monitoring
      • Message Delivery Semantics
      • Performance Tuning
      • Synchronous Responses
      • Cloud Credentials
        • Amazon Web Services
        • Google Cloud Platform
      • Serverless
        • Lambda
      • Streams Mode
        • Streams Via Config Files
        • Streams Via REST API
        • Streams API
      • Migration
        • Migrate to the Unified Redpanda Migrator
        • Migrating to Version 4
        • Migrating to Version 3
        • Migrating to Version 2
    • Cookbooks
      • Enrichment Workflows
      • Filtering and Sampling
      • Work with Jira Issues
      • Joining Streams
      • Ingest data into Snowflake
      • Redpanda Migrator
      • Retrieval-Augmented Generation (RAG)
      • Custom Metrics
      • Create a Discord Bot
    • Reference
      • Helm Chart Specification
      • Release Notes
Collapse navigation tree
See More

Collapse

Connect Tools

  • Bloblang Playground
  • Claude AI Skills
Was this helpful?
🎉 Thanks for your feedback!
  • Docs
  • Connect
  • Components Catalog
  • Tracers

Tracers

A tracer type represents a destination for Redpanda Connect to send tracing events to such as Jaeger.

When a tracer is configured all messages will be allocated a root span during ingestion that represents their journey through a Redpanda Connect pipeline. Many Redpanda Connect processors create spans, and so tracing is a great way to analyse the pathways of individual messages as they progress through a Redpanda Connect instance.

Some inputs, such as http_server and http_client, are capable of extracting a root span from the source of the message (HTTP headers). This is a work in progress and should eventually expand so that all inputs have a way of doing so.

Other inputs, such as kafka can be configured to extract a root span by using the extract_tracing_map field.

A tracer config section looks like this:

tracer:
  jaeger:
    agent_address: localhost:6831
    sampler_type: const
    sampler_param: 1
Although the configuration spec of this component is stable the format of spans, tags and logs created by Redpanda Connect is subject to change as it is tuned for improvement.
Back to top
×

Simple online edits

For simple changes, such as fixing a typo, you can edit the content directly on GitHub.

Edit on GitHub

Or, open an issue to let us know about something that you want us to change.

Open an issue

Contribution guide

For extensive content updates, or if you prefer to work locally, read our contribution guide .

Was this helpful?
group Ask in the community
mail Share your feedback
group_add Make a contribution
🎉 Thanks for your feedback!
prometheus gcp_cloudtrace
Image for tracking purposes only
Redpanda
Product
Agentic Data Plane Data Streaming
Learn
Resources Events On-demand Blog
Company
About us Customers Press Partners Careers Contact Legal hub Trust center
Privacy policy
© 2026 Redpanda. All rights reserved.
`; /** * For API endpoint results we show a tiny example to reduce clicks. * This is pure UI enrichment: not required by Algolia. */ const hasEndpoint = !!(preview && (preview.method || preview.path)); let endpointLine = ''; let curlExample = ''; if (hasEndpoint) { const method = (preview.method || 'GET').toUpperCase(); const path = preview.path || ''; endpointLine = `${method} ${path}`; let origin = ''; try { origin = new URL(preview.url || '').origin; } catch (e) { /* no-op */ } curlExample = `curl -X ${method} '${origin ? origin + path : path}'`; } // Integrate AI assistant with the current query. const askAIButton = currentQuery ? html`` : ''; // Compose a “View all results” link that respects product + version context. const componentTitle = 'Connect'; const productParams = (() => { if (componentTitle === 'Cloud') return '&product[0]=Cloud&product[1]=Connect'; if (componentTitle === 'Self-Managed') return '&product[0]=Self-Managed&product[1]=Connect'; return ''; })(); const viewAllLink = currentQuery ? html` View all results ` : ''; // Layout: header (filters/AI), results list, right-side preview, footer tips. render( html`
${dropdown} ${askAIButton}
${children}
${ preview ? html`
${ preview.breadcrumbs ? html`
    ${preview.breadcrumbs.map( (breadcrumb) => html`
  • { event.stopPropagation(); // Click analytics requires clickAnalytics: true and a queryID. // Docs: https://www.algolia.com/doc/api-reference/api-parameters/clickAnalytics/ aa('clickedObjectIDsAfterSearch', { eventName: 'Preview Selected', index: state.context.preview.__autocomplete_indexName, queryID: state.context.preview.__autocomplete_queryID, objectIDs: [state.context.preview.objectID], positions: [state.activeItemId + 1], // positions start at 1 }); }} href="${breadcrumb.u}" > ${breadcrumb.t}
  • ` )}
` : '' }

${components.Highlight({ hit: preview, attribute: 'title' })}

${ preview.intro ? components.Highlight({ hit: preview, attribute: 'intro' }) : preview.description ? components.Highlight({ hit: preview, attribute: 'description' }) : '' }

${ preview.api ? html`
${preview.api}
` : '' } ${ hasEndpoint ? html`

Endpoint

${endpointLine}

Example

${curlExample}
` : '' } ${ preview.image ? html`
${ SUPPORTED_PREVIEW_TYPES.includes((preview.type || '').toLowerCase()) ? html` { event.stopPropagation(); aa('clickedObjectIDsAfterSearch', { eventName: 'Preview Selected', index: state.context.preview.__autocomplete_indexName, queryID: state.context.preview.__autocomplete_queryID, objectIDs: [state.context.preview.objectID], positions: [state.activeItemId + 1], }); }} href="${preview.url || preview.objectID}" > ${preview.title || ''} ` : html` { event.stopPropagation(); aa('clickedObjectIDsAfterSearch', { eventName: 'Preview Selected', index: state.context.preview.__autocomplete_indexName, queryID: state.context.preview.__autocomplete_queryID, objectIDs: [state.context.preview.objectID], positions: [state.activeItemId + 1], }); }} target="_blank" rel="noopener noreferrer" href="${preview.url || preview.objectID}" > ${preview.title || ''} ` }
` : '' }
${preview.titles && preview.titles.length > 0 ? html`

On this page

` : ''}
    ${(preview.titles || []).slice(0, 15).map( (title) => html`
  • ${ SUPPORTED_PREVIEW_TYPES.includes((state.context.preview.type || '').toLowerCase()) ? html` { event.stopPropagation(); aa('clickedObjectIDsAfterSearch', { eventName: 'Preview Selected', index: state.context.preview.__autocomplete_indexName, queryID: state.context.preview.__autocomplete_queryID, objectIDs: [state.context.preview.objectID], positions: [state.activeItemId + 1], }); }} href="${(preview.url || preview.objectID)}#${title.h}" > ${components.Highlight({ hit: title, attribute: 't' })} ` : html` { event.stopPropagation(); aa('clickedObjectIDsAfterSearch', { eventName: 'Preview Selected', index: state.context.preview.__autocomplete_indexName, queryID: state.context.preview.__autocomplete_queryID, objectIDs: [state.context.preview.objectID], positions: [state.activeItemId + 1], }); }} target="_blank" rel="noopener noreferrer" href="${(preview.url || preview.objectID)}#${title.h}" > ${components.Highlight({ hit: title, attribute: 't' })} ` }
  • ` )}
  • ⏎to select
  • ↓↑to navigate
  • Escto close
${viewAllLink}
` : '' }
`, root ); }, /** * Define our data sources: * - "filters": facet values for the _tags facet (used by the tags plugin) * - "docs": actual content/hits * Sources overview: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/ */ getSources({ query, state }) { const tagsByFacet = groupBy(state.context.tagsPlugin.tags, (tag) => tag.facet); return [ { sourceId: 'filters', getItems() { // Fetch facet values for _tags to populate the checkbox menu. // getAlgoliaFacets: https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/sources/#param-getalgoliafacets return getAlgoliaFacets({ searchClient, queries: [ { indexName: 'redpanda', facet: '_tags', params: { facetQuery: '', // https://www.algolia.com/doc/api-reference/api-parameters/facetQuery/ maxFacetHits: 50, // https://www.algolia.com/doc/api-reference/api-parameters/maxFacetHits/ }, }, ], transformResponse({ facetHits }) { // We return raw server facets; union with known+selected happens in render(). const server = (facetHits[0] || []).map(h => ({ label: h.label, facet: '_tags' })); return server; }, }); }, templates: { header() { return null; }, item() { return null; }, }, }, { sourceId: 'docs', getItems() { // getAlgoliaResults: https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/sources/#param-getalgoliaresults return getAlgoliaResults({ searchClient, queries: [ { indexName: 'redpanda', query, params: { clickAnalytics: true, // https://www.algolia.com/doc/api-reference/api-parameters/clickAnalytics/ hitsPerPage: 10, // https://www.algolia.com/doc/api-reference/api-parameters/hitsPerPage/ attributesToSnippet: ['*:25'], // https://www.algolia.com/doc/api-reference/api-parameters/attributesToSnippet/ snippetEllipsisText: '…', // https://www.algolia.com/doc/api-reference/api-parameters/snippetEllipsisText/ tagFilters: mapToAlgoliaFilters(tagsByFacet), // https://www.algolia.com/doc/api-reference/api-parameters/tagFilters/ }, }, ], transformResponse({ hits }) { // Re-order mixed hits so Docs stay in place while non-Doc items // are time-sorted, and compute a matchingHeading to deep-link // to the best title match. return hits.map((nestedHits) => { const docIndices = new Map(); nestedHits.forEach((item, index) => { if (item.type === 'Doc') { docIndices.set(index, item); } }); const nonDocItems = nestedHits .filter((item) => item.type !== 'Doc') .sort((a, b) => (b.unixTimestamp ?? -Infinity) - (a.unixTimestamp ?? -Infinity)); let nonDocIndex = 0; docIndices.forEach((item, index) => { if (item._highlightResult && item._highlightResult.titles) { const matchedIndex = item._highlightResult.titles.findIndex( (title) => title.t.matchLevel === 'full' ); if (matchedIndex !== -1) { const matchedTopLevelTitle = item.titles[matchedIndex]; if (matchedTopLevelTitle) { item.matchingHeading = `#${matchedTopLevelTitle.h}`; } } } nestedHits[index] = item; }); return nestedHits.map((item, index) => docIndices.has(index) ? docIndices.get(index) : nonDocItems[nonDocIndex++] ); }); }, }); }, templates: { noResults({ state, html }) { // Clear preview so we don’t show stale content for a query with no hits. state.context.preview = null; if (!state.query) return; return html`
No results for ${state.query}

Believe this query should return results? Let us know .

`; }, header({ items, html }) { if (!items.length) return; return html` Results
`; }, item({ item, components, html }) { const matchingHeading = item.matchingHeading || ''; // Helper: render “product” as deduped badges const renderProduct = (product) => { if (Array.isArray(product)) { const seen = new Set(); return product .filter(p => { const k = (p || '').toLowerCase(); if (seen.has(k)) return false; seen.add(k); return true; }) .map(p => html`
${p}
`); } else if (product) { return html`
${product}
`; } return null; }; // If previewable, navigate within the panel; otherwise open a new tab. const aTag = SUPPORTED_PREVIEW_TYPES.includes((item.type || '').toLowerCase()) ? html`
${components.Highlight({ hit: item, attribute: 'title' })}
${ item.text ? html`
${ item.text ? components.Snippet({ hit: item, attribute: 'text' }) : item.intro ? components.Snippet({ hit: item, attribute: 'intro' }) : item.description ? components.Snippet({ hit: item, attribute: 'description' }) : '' }
` : html`
${ item.intro ? components.Snippet({ hit: item, attribute: 'intro' }) : item.description ? components.Snippet({ hit: item, attribute: 'description' }) : '' }
` }
${item.type}
${renderProduct(item.product)} ${item.api ? html`
${item.api}
` : ''} ${item.version ? html`
${item.version}
` : ''}
` : html`
${components.Highlight({ hit: item, attribute: 'title' })}
${ item.breadcrumbs ? html`
    ${ item.breadcrumbs.length > 2 && item.breadcrumbs .slice(1, item.breadcrumbs.length - 1) .map((breadcrumb) => html`
  • ${breadcrumb.t}
  • `) } ${ item.breadcrumbs.length === 2 && item.breadcrumbs.slice(1).map((breadcrumb) => html`
  • ${breadcrumb.t}
  • `) }
` : '' }
${ item.text ? components.Snippet({ hit: item, attribute: 'text' }) : item.intro ? components.Snippet({ hit: item, attribute: 'intro' }) : item.description ? components.Snippet({ hit: item, attribute: 'description' }) : '' }
${item.type}
${renderProduct(item.product)} ${item.version ? html`
${item.version}
` : ''}
`; return html`${aTag}`; }, }, getItemUrl({ item }) { return item.url || item.objectID; }, onActive({ item, setContext, state }) { const ctx = state?.context || {}; setContext({ ...ctx, preview: item }); }, } ]; }, }); /** * Expose the Autocomplete instance globally so other UI (our custom dropdown) * can drive its context without capturing stale references across re-renders. * This is intentionally namespaced and “private”. See notes below. */ window.__algoliaAutocompleteInstance = autocompleteInstance; } window.addEventListener('DOMContentLoaded', initAlgolia);
Expand navigation tree
Quick access to Connect Tools
Bloblang Playground Claude AI Skills