What Are Vendor Exporters in OpenTelemetry?

What Are Vendor Exporters in OpenTelemetry?

A plain-English guide to the pieces of OpenTelemetry that carry your traces, metrics, and logs to a specific company’s product — what they are, why they exist, when you still need them, and how to use them safely.

Imagine you have written a letter, and now you need to post it. A good postal service gives you a choice. You can use the standard international envelope that every post office in the world understands, or you can use a special envelope made by one particular courier company, which only that courier accepts but which comes with extra features such as its own tracking page and special insurance.

OpenTelemetry has the same choice. Your software produces telemetry, which is the stream of traces, metrics, and logs that describes how it behaves. That telemetry must eventually be sent to a product that stores it and shows it on dashboards. The part of OpenTelemetry that does the sending is called an exporter. Some exporters speak the standard language. Others are built to speak the private language of one specific company, and these are called vendor exporters.

This guide explains vendor exporters from the ground up. You will learn what they are, why they were created, how they compare with the standard exporter, how they work inside, and how to use them safely and sensibly. Every new word is explained the first time it appears, so you do not need any earlier knowledge.

1What Are Vendor Exporters?

The short answer first, then the details that make it useful.

OpenTelemetry, often shortened to OTel, is a free, open source framework hosted by the Cloud Native Computing Foundation. It gives developers one standard way to create and collect telemetry. But creating telemetry is only half the story. Someone has to carry it out of your program or out of the middle layer and deliver it to a place where people can use it. That carrier is the exporter.

A vendor is simply a company that sells or hosts a product, such as a monitoring service, a log search tool, or a cloud platform. A vendor exporter is an exporter built to deliver telemetry to one particular vendor’s product, using that vendor’s own data format, address, and rules. It is the special envelope that only one courier accepts.

The other kind of exporter is the OTLP exporter. OTLP stands for OpenTelemetry Protocol, the project’s own standard language. An OTLP exporter works with anyone who understands that language, which today includes a large and growing number of vendors and open source tools. It is the standard international envelope.

1
Standard language: OTLP, understood by many destinations
3
Signals an exporter may carry: traces, metrics, and logs
2
Places an exporter can live: inside an SDK or inside a Collector
Everyday Analogy

Think of a travel plug adapter. Wall sockets differ from country to country, and your phone charger only has one shape. A universal adapter lets one charger work almost everywhere. A vendor exporter is like a custom adapter built for exactly one country’s socket. It fits that socket perfectly, and it may even add a surge protector, but it is useless anywhere else. The OTLP exporter is the universal adapter, and more and more sockets are being redesigned to fit it.

What a vendor exporter usually does

  • Translates. It converts OpenTelemetry’s internal data into the exact format the vendor expects.
  • Addresses. It knows the vendor’s web addresses, called endpoints, including regional variations.
  • Authenticates. It attaches the secret key or token that proves you are a paying customer.
  • Adapts. It handles quirks, such as how the vendor wants metrics measured or how names must be spelled.
  • Delivers reliably. It retries on failure and queues data during short outages.

What a vendor exporter is not

A vendor exporter is not a backend. It does not store or display anything; it only delivers. It is also not required, because most modern vendors accept the standard OTLP format, so the plain OTLP exporter often works just as well. And it is not a separate product from OpenTelemetry. Most vendor exporters are components that live inside the OpenTelemetry project’s own code repositories, usually built and maintained by people from the vendor itself.

Why you should care about exporters

Exporters sit at the very end of the telemetry journey, which makes them easy to ignore until something goes wrong. Yet every dashboard, alert, and investigation you will ever run depends on data that an exporter delivered. If the exporter is misconfigured, slow, or sending the wrong thing, even the best instrumentation in the world will leave you blind.

Exporters also decide how much freedom you keep. A well-chosen exporter lets you change tools without drama, while a carelessly chosen one can quietly turn a flexible system into a rigid one. Understanding them early is one of the cheapest ways to protect your future options.

i
Remember This

An exporter sends telemetry out. A vendor exporter sends it to one specific company’s product in that company’s own language. The OTLP exporter sends it in the shared standard language that many products understand.

2Why Vendor Exporters Exist: A Short History

Every good component begins as a response to a painful problem. Vendor exporters are no exception.

When tracing and monitoring tools first appeared, every vendor invented its own way of receiving data. One product wanted data in one shape, a second wanted it in another, and a third required a completely different set of field names. A company that wanted to switch from one product to another often had to rewrite the instrumentation code inside every application, which could take months.

The earlier open source projects, OpenTracing and OpenCensus, tried to soften this problem. OpenCensus in particular shipped many exporters, each one a small translator for a specific destination. The idea was good: write your instrumentation once, and choose the destination by swapping an exporter. Still, every vendor had its own exporter with its own behavior, and every language had its own set. The number of combinations grew quickly.

In 2019, OpenTracing and OpenCensus merged into OpenTelemetry. The new project kept the idea of exporters and added something even more powerful: a single standard protocol, OTLP, that vendors could accept directly. Over the following years, vendor after vendor added native OTLP support to their products. When a vendor accepts OTLP directly, the plain OTLP exporter is enough, and a custom vendor exporter becomes optional.

1

Private formats everywhere

Each vendor accepts data only in its own format. Switching vendors means rewriting application code.

2

Exporters as translators

OpenCensus and similar projects offer exporters, so applications are instrumented once and destinations are chosen by configuration.

3

2019 — OpenTelemetry is formed

The merger creates one standard for instrumentation, a Collector, and a native protocol called OTLP.

4

Vendors contribute exporters

Companies add exporters for their own products to the project’s shared repositories, so customers can use them with the Collector.

5

Vendors adopt OTLP natively

Many vendors begin accepting OTLP directly, and the project itself recommends OTLP wherever it is available.

6

Old exporters are retired

Where a destination now understands OTLP, older special exporters are deprecated and removed. The Jaeger exporters are a well-known example.

Why a Standard Beats Many Adapters

Before USB, every device had its own charging cable, and drawers were full of tangled wires. A single shared plug made life simpler for everyone. OTLP aims to be that shared plug for telemetry. Vendor exporters are the old cables still in the drawer: some are still needed for older devices, and some remain handy for special features, but fewer people reach for them every year.

It is worth understanding how vendor exporters come into being. In most cases, a vendor writes the exporter for its own product and offers it to the open source project. Volunteers and project maintainers review it, and once accepted, it is named in a file that lists its code owners, the people responsible for keeping it healthy. This arrangement is efficient, because the people who know the vendor’s system best write the translation. It also means the exporter’s quality depends on how much attention the vendor and the community give it over time.

i
A Lesson From Jaeger

Jaeger, the popular open source tracing tool, began accepting OTLP directly. Once that happened, the special Jaeger-format exporters in OpenTelemetry were no longer necessary and were gradually retired. This is the usual life story of a vendor exporter: needed at first, then fading as the destination learns the standard language.

3Core Concepts You Need First

A handful of words explain nearly everything in this area. Let us meet them one at a time.

Concept

Signal

One kind of telemetry. Traces follow a request across services, metrics are numbers measured over time, and logs are written records of events. An exporter may support one signal or all three.

Concept

SDK

The OpenTelemetry code that lives inside your application and creates telemetry. It includes a place to attach exporters.

Concept

Collector

A separate program that receives telemetry, changes it if needed, and forwards it. It has receivers, processors, and exporters, and it is where most vendor exporters live.

Concept

OTLP

The OpenTelemetry Protocol, the native shared language. It travels over gRPC, a fast connection style, or over HTTP, the same basic method that web pages use.

Concept

Endpoint

The web address that an exporter sends data to. Vendors often have different endpoints for different regions or different signals.

Concept

API key or token

A secret string that proves who you are to the vendor. It is usually sent in a header attached to each request.

Concept

Contrib

The large community collection of Collector components, kept separately from the small core. Most vendor exporters are in this collection.

Concept

Stability level

A label showing how mature a component is, such as development, alpha, beta, or stable. It tells you how much change and risk to expect.

SDK exporter versus Collector exporter

Exporters exist in two places. An SDK exporter lives inside your application and sends data straight from your program. A Collector exporter lives inside the Collector and sends data onward from the middle layer. In practice, applications almost always use the standard OTLP exporter in the SDK to talk to a Collector, while the Collector, where they exist, uses vendor exporters or OTLP exporters to talk to the final destinations. We will see why this split is so helpful.

A word about distributions

Some vendors publish their own ready-to-use package of OpenTelemetry, called a distribution. It is the standard project plus the vendor’s preferred settings and extra components, so customers can get started quickly. Examples include distributions offered by large cloud providers and observability companies. A distribution is convenient, but it is worth remembering that it can bring vendor-specific habits along with it, so read what is inside before you rely on it.

Resource details travel with the data

Telemetry does not travel alone. It carries a description of who produced it, called the resource, with details such as the service name, the version, and the environment. Vendor exporters use these details to decide where to file the data in the vendor’s own screens. If the service name is missing or wrong, the data may appear under an unhelpful label such as “unknown service,” and nobody will find it. Setting the resource details carefully in your applications is therefore one of the quietest, most valuable habits in the whole pipeline.

i
A Simple Mental Model

Picture a factory with a shipping department. The SDK is the production line, the Collector is the shipping department, and exporters are the delivery trucks. OTLP trucks are the standard trucks that fit every loading dock. Vendor trucks are specially built for one customer’s dock.

4The Family of Exporters

Vendor exporters are one branch of a larger family. Seeing the whole family makes each branch easier to understand.

OpenTelemetry offers many exporters, and they fall into four rough groups. The standard group contains the OTLP exporters, which are neutral. The open source backend group contains exporters for community tools, such as Prometheus, Zipkin, and Kafka. The vendor group contains exporters aimed at commercial products and cloud platforms. The helper group contains exporters that exist for testing and plumbing rather than for a final destination.

flowchart TD
    EXP["Exporters"]
    EXP --> STD["Standard and neutral"]
    EXP --> OSS["Open source backend exporters"]
    EXP --> VEN["Vendor exporters"]
    EXP --> HLP["Helper exporters"]
    STD --> S1["OTLP over gRPC"]
    STD --> S2["OTLP over HTTP"]
    OSS --> O1["Prometheus"]
    OSS --> O2["Zipkin"]
    OSS --> O3["Kafka"]
    VEN --> V1["Datadog"]
    VEN --> V2["Splunk"]
    VEN --> V3["AWS X-Ray"]
    VEN --> V4["Google Cloud"]
    VEN --> V5["Azure Monitor"]
    HLP --> H1["Debug or console"]
    HLP --> H2["File"]
    HLP --> H3["Load balancing"]
Figure 1: The family tree of exporters, with vendor exporters as one branch

Read the diagram from the top. Every exporter does the same basic job, which is to send telemetry out, but each branch has a different purpose. The standard branch is the neutral path that works with anyone who speaks OTLP. The open source branch serves community tools. The vendor branch serves specific companies. The helper branch is about testing, saving data to a file, or spreading work among several Collectors. The names in the vendor branch are examples only, because the exact list changes over time.

GroupPurposeExampleSimple comparison
StandardSend data in the shared languageOTLP over gRPC or HTTPThe universal adapter
Open source backendServe a specific community toolPrometheus, Zipkin, KafkaAn adapter for a public socket
VendorServe one company’s productDatadog, Splunk, AWS, Google Cloud, AzureAn adapter built for one private socket
HelperTest, store, or route dataDebug, file, load balancingA test lamp and a sorting table
!
Lists Change Quickly

New exporters appear, and old ones are deprecated, every few months. Do not trust any article, including this one, as the final word on which vendor exporters exist. The project publishes an online registry of components, and each component page shows its current stability level and who maintains it. Check there before you build anything on it.

5Where Exporters Sit in the Architecture

Where you attach an exporter matters just as much as which exporter you choose.

The usual recommended design is simple. Applications use the SDK and send data in OTLP to a Collector. The Collector receives it, applies shared rules in its processors, and then uses exporters, either OTLP or vendor, to deliver it to one or more destinations. Because the choice of destination is made in the Collector, applications never need to know which vendor is in use.

flowchart LR
    subgraph APP["Application"]
        CODE["Your code with OpenTelemetry SDK"]
        SX["SDK exporter: OTLP"]
    end
    subgraph COL["Collector"]
        RC["OTLP receiver"]
        PR["Processors"]
        VE["Vendor exporters and OTLP exporters"]
    end
    subgraph VENDORS["Destinations"]
        V1["Vendor A"]
        V2["Vendor B"]
        V3["Open source backend"]
    end
    CODE --> SX
    SX -->|OTLP| RC
    RC --> PR
    PR --> VE
    VE --> V1
    VE --> V2
    VE --> V3
Figure 2: Applications speak OTLP to a Collector, which uses vendor or OTLP exporters to reach destinations

Follow the arrows. The application code creates telemetry, and its SDK exporter sends it as OTLP. The Collector’s receiver accepts it, the processors clean and label it, and the exporters deliver it to Vendor A, Vendor B, and an open source backend. If the company later drops Vendor A and adds a new vendor, only the Collector changes. No application is touched.

Everyday Analogy

Think of an office with a central mailroom. Employees put all their mail in one standard tray. The mailroom decides which courier carries each parcel, relabels the parcels in whatever style each courier requires, and keeps all courier accounts and passwords in a safe. Employees never learn which courier is used, and the company can change couriers over a weekend without anyone noticing.

Why not put vendor exporters inside the application?

You can, and many tutorials do, because it is the shortest path to a working demo. But it ties the application to the vendor. The vendor’s secret key must be present in every program. Changing vendors means changing and redeploying every program. A bug or slowdown in the vendor exporter runs inside your business code. And rules for sampling, redaction, and labeling must be repeated in every application. Putting vendor exporters in the Collector avoids all of these problems at once.

When SDK exporters are the right choice

Direct export from the SDK is perfectly sensible in a few situations: a small project with one service and one vendor, a quick experiment, a serverless function where running a separate Collector is awkward, or a vendor that officially recommends its own distribution. In those cases, simplicity wins, and you can move to the Collector design when the system grows.

One Collector or a chain of them

The Collector in this design can be a single shared service, or it can be a chain with a small agent on every machine feeding a central gateway. In both layouts, exporters at the final step are the ones that touch the outside world. It usually makes sense to put vendor exporters only on the final, central layer. This keeps the number of places that hold secret keys small, and it means the outbound connections to the vendor come from a few well-known machines, which makes network rules and monitoring far simpler.

i
Keep Applications Vendor-Neutral

A good rule of thumb is to treat the application as vendor-neutral and the Collector as vendor-aware. Applications only ever say “send OTLP to this address.” The Collector knows which companies are on the other side.

6How a Vendor Exporter Works Inside

Follow one bundle of telemetry on its final journey, from the Collector to the vendor.

1

The processors finish their work

Data has been cleaned, labeled, and sampled. The last processor, usually the batch processor, hands a bundle to the exporter.

2

The exporter reads the internal format

Inside the Collector, every signal is held in one shared internal shape, so exporters all start from the same place.

3

It translates the data

A vendor exporter converts the bundle into the vendor’s format, mapping OpenTelemetry names and fields to the vendor’s own names and fields.

4

It attaches identity

The exporter adds the secret key or token, and chooses the right regional endpoint.

5

It queues and sends

The request goes into a sending queue and then travels over an encrypted connection to the vendor.

6

It handles the answer

If the vendor accepts, the bundle is done. If the vendor is busy or unreachable, the exporter waits and tries again. If the vendor rejects the data as invalid, the exporter reports it and does not retry forever.

sequenceDiagram
    participant P as Processors
    participant X as Vendor exporter
    participant Q as Sending queue
    participant V as Vendor endpoint
    P->>X: 1. Hand over batch in OpenTelemetry format
    X->>X: 2. Translate to vendor format and add key
    X->>Q: 3. Place request in queue
    Q->>V: 4. Send over encrypted connection
    V--xQ: 5. Temporary error or rate limit
    Note over Q: 6. Wait and retry with growing delay
    Q->>V: 7. Retry the request
    V-->>Q: 8. Accepted
    Note over X: 9. Count sent and failed items
Figure 3: The journey of a bundle through a vendor exporter, including a retry after a temporary error

In steps one to three, the processors hand over a bundle, the exporter translates it and adds the key, and the request enters the queue. In step four the queue sends it to the vendor. Step five shows a common real-world event: the vendor says “slow down” or is briefly unavailable. Rather than discarding the data, the queue waits and retries with growing pauses, as steps six and seven show. When the vendor accepts in step eight, the work is done, and in step nine the exporter counts what was sent and what failed so that you can watch it on a dashboard.

Notice also that an exporter works on copies of the data in memory. It does not change your applications and it does not change the original telemetry. If you attach two exporters to one pipeline, each performs its own translation from the same starting point, and each can fail or succeed on its own. That independence is what lets one vendor be slow or unavailable while the other keeps receiving data happily.

Translation is the heart of it

The translating step is the reason vendor exporters exist at all. OpenTelemetry uses agreed names for common details, called semantic conventions. For example, there is one agreed name for the service that produced the data. A vendor may use a different name for the same idea, or may treat a few special details in a unique way. The vendor exporter maps one to the other. Good exporters do this faithfully, but translation can lose information or rename things in surprising ways, which is why it is worth checking your data in the vendor’s screens after the first test.

Batches and size limits

Vendors set limits on how large a single request may be, how many items it may hold, and how fast requests may arrive. A batch processor ahead of the exporter groups data into efficient bundles, and its size settings should respect the vendor’s limits. If bundles are too large, the vendor may refuse them whole. If they are too small, you waste effort and may hit rate limits. When the vendor documents its limits, treat them as the starting point for your batch settings.

!
Not All Rejections Are Equal

A temporary problem, such as a busy server, deserves a retry. A permanent problem, such as a wrong key or a badly formed request, will never succeed no matter how often you retry. Good exporters tell the difference. If you see an exporter retrying endlessly, check whether the key or endpoint is wrong, because patience will not fix a mistake.

7OTLP or a Vendor Exporter? Choosing Wisely

This is the question every team eventually asks, and the answer is usually simpler than it first appears.

The project’s general advice is easy to remember: use OTLP whenever the destination supports it. OTLP is the native language of OpenTelemetry, so nothing needs to be translated, and nothing can be lost in translation. It also keeps you free to change destinations, because every OTLP-speaking product looks the same from the outside.

Vendor exporters earn their place in the remaining cases. Some destinations simply do not accept OTLP yet. Some cloud platforms tie access to their own identity system, so an exporter that understands that system is much easier to use. And some products offer special features that only their own format can carry. The flowchart below turns this thinking into a short decision path.

flowchart TD
    A["Need to send data to a vendor"] --> B{"Does the vendor accept OTLP directly?"}
    B -->|Yes| C["Use the standard OTLP exporter with the vendor endpoint and key"]
    B -->|No| D{"Is there a vendor exporter for the Collector?"}
    D -->|Yes| E["Use it and check its stability level"]
    D -->|No| F["Use the vendor distribution or choose another path"]
    E --> G{"Is the exporter stable enough for your needs?"}
    G -->|Yes| H["Adopt it and monitor it"]
    G -->|No| I["Test carefully or ask the vendor for support"]
Figure 4: A simple decision path for choosing between OTLP and a vendor exporter

Begin at the top. If the vendor accepts OTLP directly, you are done: use the standard exporter and point it at the vendor’s endpoint with your key. If not, look for a vendor exporter in the Collector collection. If one exists, check how mature it is. A component labeled stable is much safer than one labeled development or alpha, which may change or disappear without much warning. If no exporter exists at all, consider the vendor’s own distribution or reconsider the choice of destination.

QuestionOTLP exporterVendor exporter
Which language does it speak?The shared OpenTelemetry standardThe vendor’s own format
Is translation needed?NoYes, and it can change names or lose detail
How easy is it to switch vendors?Very easy: change the endpoint and keyHarder: swap the exporter and re-check the data
Does it work with every destination?Only those that accept OTLPOnly the one vendor it was built for
How much does it change over time?Stable and slow-movingCan change whenever the vendor changes
Can it use vendor-specific features?Not directlyOften yes
Can it use the vendor’s identity system?Through headers or extensionsOften built in
Everyday Analogy

Booking a flight is easier when every airline accepts the same standard ticket. You can switch airlines without learning a new process. A few small airlines still insist on their own paper forms. You may well fly with them because the route is excellent, but you will always plan extra time for the paperwork. The standard ticket is OTLP, and the paper form is the vendor exporter.

Cloud platforms deserve a special mention. Their monitoring services are closely tied to their own identity and permission systems. A vendor exporter built for such a platform can ask the platform for short-lived proof of identity, which avoids storing a secret key at all. For organizations that run entirely on one cloud, this convenience and safety is often the deciding reason to use the platform’s exporter, even though plain OTLP might also be possible.

i
Using a Vendor’s OTLP Endpoint Is Not Lock-in

Many people worry that sending data to a vendor means being trapped. If you use the standard OTLP exporter pointed at a vendor’s OTLP address, you are still free. Only the endpoint and the key belong to that vendor. Your instrumentation and your Collector remain neutral, and moving elsewhere is a small change to those two settings.

8What You Configure on an Exporter

Every exporter, whether OTLP or vendor, is controlled by a small set of settings. Learn them once and you can read any exporter.

Most exporters have the same basic dials. Some are required, such as where to send and how to prove who you are. Others tune reliability and performance. The table below explains each dial in plain language.

SettingWhat it controlsSimple comparison
EndpointThe address data is sent to, often specific to a regionThe street address on the parcel
AuthenticationHow you prove who you are, usually a key or token in a header, or a cloud identityYour account number and signature
Encryption settingsWhether the connection is encrypted and which certificates are trustedA sealed, tamper-evident envelope
HeadersExtra labels attached to every request, such as an API key or a team nameStickers on the box
CompressionWhether data is squeezed before sending to save bandwidthVacuum-packing clothes
TimeoutHow long to wait for an answer before giving up on one attemptHow long you hold the phone before hanging up
RetryWhether and how to try again after a temporary failureCalling back later
Sending queueHow many waiting bundles to hold during slowdownsA waiting room
SignalsWhich of traces, metrics, and logs this exporter handlesWhich kinds of parcel the courier takes

It helps to remember that settings come in layers. Some belong to the exporter itself, such as the endpoint and the key. Others belong to the surrounding pipeline, such as the batch size and the processors that run before the exporter. A problem that looks like an exporter failure is sometimes caused by a neighbor in the pipeline, for example a processor that removes a label the vendor requires. When something goes wrong, check the whole path, not only the last step.

Which settings matter most on day one

For a first working setup you need three things: the right endpoint, a valid credential, and encryption turned on. Everything else can start at its default. Once data is flowing, spend time on the reliability dials, especially the queue and the retries, because these decide what happens on the first bad day.

Keep secrets out of the settings file

The configuration file is usually stored in a shared place and read by many people. A secret key typed directly into it can leak through version control, screenshots, or support tickets. A better habit is to keep the key in a proper secret store and let the Collector read it from the environment when it starts. The file then contains only a reference, and the secret lives somewhere safer.

One exporter, several pipelines

A single exporter can be used by several pipelines, and a single pipeline can send to several exporters. This flexibility is what makes tasks such as copying data to a second vendor easy. It also means that a careless change to a shared exporter affects every pipeline that uses it, so treat shared settings with respect.

Compression and bandwidth

Telemetry can be bulky, and sending it across the internet costs both time and money. Most exporters can compress data before sending, trading a little processing effort for a large saving in network traffic. This is usually a good bargain, particularly when the Collector sits in one cloud region and the vendor in another, where data transfer is charged. Check that the vendor accepts the compression style you choose, and measure the effect on both bandwidth and processor use after turning it on.

!
Regional Endpoints Are a Classic Trap

Many vendors run separate regions, and a key created in one region does not work in another. If an exporter reports that authentication failed even though the key looks right, check that the endpoint belongs to the same region as the account. Wrong region is one of the most common causes of a first-day failure.

9Special Care for Metrics

Traces and logs usually travel smoothly. Metrics have a few traps that every vendor exporter user should know.

Metrics are numbers measured over time, such as the count of requests handled. Different destinations expect these numbers to be reported in different styles, and a vendor exporter often has to adapt. The most important difference is called temporality.

Everyday Analogy

Think of a car with two meters on its dashboard. The odometer shows the total distance the car has ever traveled, and it only goes up. The trip meter shows the distance since you last reset it. Cumulative metrics are like the odometer: each report is the running total since the start. Delta metrics are like the trip meter: each report is only the change since the previous report. Both describe the same journey, but a destination that expects one will be confused by the other.

Some backends, such as Prometheus, expect cumulative totals. Others prefer or require deltas. The Collector offers processors that convert between the two, and some vendor exporters apply the right style automatically. If a counter on your dashboard suddenly looks flat, impossible, or wildly spiky, a mismatch in temporality is the first thing to suspect.

TopicWhat can go wrongWhat to do
TemporalityA backend expecting deltas receives totals, or the reverse, and charts look wrongCheck what the vendor expects and convert in the Collector if needed
HistogramsSome vendors support newer, finer histogram styles and some only the older bucket styleCheck support and choose the style the vendor handles best
Names and unitsA backend rewrites dots to underscores, or adds suffixes for unitsLearn the vendor’s rules and test with one metric first
High cardinalityToo many different label values create millions of separate series, and bills rise sharplyRemove or group unbounded labels before export
Resets and start timesA restart makes a total drop to zero, which can look like a negative changeUse exporters and backends that understand start timestamps

Units deserve a short word as well. A duration may be measured in seconds by one system and milliseconds by another, and a size may be in bytes or kilobytes. Exporters usually carry the unit along, but not every destination displays it the way you expect. A chart that shows latency of two thousand when you expected two is almost always a unit mismatch, not a sudden disaster, so check the unit before sounding the alarm.

Cardinality and the bill

Cardinality means the number of different combinations of label values. If a metric has a label for the customer ID, and you have a million customers, that single metric becomes a million separate lines. Many vendors bill by the number of such lines, so one careless label can multiply costs overnight. A gateway Collector with a processor that drops or merges unbounded labels is one of the best defenses.

i
Test One Metric End to End

Before turning on metrics for everything, pick one counter and one histogram. Follow them from the code, through the Collector, to the vendor’s screen. If the values match what you expect, the translation is working. If not, you have found the problem while it is still small.

10Security and Privacy for Exporters

An exporter is the exit door of your telemetry. Whatever passes through it leaves your control.

Exporters carry two kinds of valuable things: the telemetry itself, which may contain sensitive details about your system and your customers, and the credentials that let you send it. Both deserve care. A good rule is to assume that anything an exporter sends will be stored by a third party for a long time, and to decide, before turning it on, whether you are comfortable with that.

RiskExampleRemedy
Leaked credentialsAn API key pasted into a configuration file or shared screenshotKeep keys in a secret store, rotate them regularly, and never commit them to version control
Data in transitTelemetry sent over an unencrypted connectionAlways use encrypted connections to the vendor
Sensitive data leaving the networkEmail addresses or card numbers inside span attributes or logsRedact or mask in the Collector before the exporter runs
Excess permissionsOne all-powerful key shared by every teamUse separate, limited keys for each environment or team
Data residencyCustomer data stored in a region the law does not allowChoose the vendor’s regional endpoint that matches your obligations
Untrusted componentsA rarely used contrib exporter with few maintainersCheck who maintains it, pin versions, and build a custom Collector with only what you need
Open exit pathsAny program can send data anywhere on the internetAllow outbound traffic only to the vendor addresses you use
Everyday Analogy

Think of a company’s outgoing mail. Before a letter leaves the building, someone should check that it does not contain confidential papers. The courier’s account number should be kept in a safe, not taped to the wall. And only approved couriers should be allowed through the door. An exporter’s security follows the same three habits: check the contents, protect the keys, and limit the exits.

Using cloud identity instead of static keys

Some vendor exporters, especially those for large cloud platforms, can use the cloud’s own identity system. The Collector is given a role, and the platform proves who it is automatically, without any long-lived secret in a file. This is usually safer than a static key, because there is nothing to leak or forget to rotate. When a vendor offers this option, it is often the best reason to prefer the vendor exporter over plain OTLP.

Review what you export

Make it a habit to look at a sample of exported data from time to time, as a stranger would see it. Ask whether a person could be identified, whether a secret is visible, and whether anything leaves that the company never agreed to share. A short review each quarter often finds forgotten attributes, such as a full web address with an access token in it, long before an auditor or an attacker does.

!
Redact Before You Export, Not After

Once data reaches a vendor, removing it can be slow, expensive, or impossible. Put masking rules in processors that run before the exporter, ideally at a central gateway, so that even a careless application cannot send a secret out of your network by accident.

11Monitoring the Exporters

If the delivery truck breaks down, the warehouse keeps working and nobody notices until the shelves are empty. Watch the trucks.

An exporter that quietly fails produces the most dangerous kind of problem: dashboards that look calm because they are empty. To avoid this, the Collector publishes internal telemetry about its own work, including metrics for how many items each exporter sent, how many failed, and how full its queue is. Collect these numbers, chart them, and set alerts.

What to watchWhat it tells youTypical action
Items sent successfullyWhether data is reaching the vendor at the expected rateA sudden drop means something broke upstream or at the exporter
Items that failed to sendWhether the vendor or the network is rejecting dataCheck keys, endpoints, vendor status, and limits
Queue size compared with capacityHow close you are to dropping dataWarn early, long before the queue is full
Items refused when enqueuingWhether data is being lost because the queue is fullIncrease capacity or fix the slowdown
Delay between creation and arrivalWhether data is fresh enough to be usefulCheck queues, batching, and network paths
Vendor-side usage and rate-limit messagesWhether you are approaching a quota or a bill limitReduce volume with sampling and filtering

The debug exporter: your testing friend

The Collector has a helper called the debug exporter, earlier named the logging exporter. It prints a summary of the telemetry passing through into the Collector’s own log. Adding it temporarily next to a vendor exporter lets you confirm that the data looks right before it leaves, which makes it much easier to tell whether a problem is in your pipeline or on the vendor’s side. Remove it, or lower its detail, in production, because it can create a lot of log output.

Check the other end too

Counting what you sent is only half the story. Once in a while, open the vendor’s own screens and confirm that the data arrived and looks as expected: service names, labels, units, and timestamps. A comparison between the Collector’s sent counts and the vendor’s received counts reveals problems that no single side can show.

A useful dashboard for exporters shows four lines side by side: items received by the Collector, items processed, items sent, and items failed. If the first line is healthy but the third is low, you know the problem is between the Collector and the vendor. If the first line itself is low, the problem is upstream in the applications. This simple layout turns a mysterious blank screen into a clear question about which stage to investigate.

i
Alert on Silence

Do not only alert on errors. Alert when a normally busy source goes quiet. A zero is also a measurement, and in telemetry it very often means a broken pipe rather than a peaceful system.

12Benefits, Drawbacks, and Trade-offs

Every choice has a price. An honest view helps you decide when a vendor exporter is the right tool.

Advantages

  • Works with destinations that lack OTLP. It can reach products that do not yet accept the standard format.
  • Understands vendor identity. It can use a platform’s native login system instead of static keys.
  • Handles vendor quirks. It knows the right names, limits, and formats so you do not have to.
  • Often vendor-maintained. The people who know the product best usually write and update it.
  • Quick to start. A ready-made exporter gets you to a working dashboard fast.
  • Access to special features. Some capabilities are only available through the vendor’s own format.

Disadvantages

  • Ties you to one product. Moving elsewhere means replacing the exporter and checking the data again.
  • Translation can lose detail. Names and structures may change on the way.
  • Uneven maturity. Some exporters are early or lightly maintained and may change without much warning.
  • Bigger programs and more risk. More components mean a larger surface to patch and secure.
  • Different behavior per vendor. Each exporter has its own settings and its own surprises.
  • May be retired. When a vendor adopts OTLP, its special exporter can be deprecated.

Common trade-offs in plain language

ChoiceWhat you gainWhat it costs
OTLP to a vendor endpointNeutrality and easy switchingCannot use some vendor-only features
Vendor exporter in the CollectorNative format and identity supportTied to that product and its exporter’s upkeep
Vendor exporter in the applicationSimplest demoKeys and vendor code inside every program
Vendor distributionFast, supported startVendor habits and components come along
Custom-built CollectorSmall, safer program with only the parts you needYou must build and upgrade it yourself
Sending to two vendorsSafe comparison and migrationDouble the volume and double the cost while it lasts

When you weigh the costs, count more than the price of the vendor’s bill. Include the time spent learning each exporter’s settings, the effort of upgrading it, and the risk that it changes or is retired. A component that is free to download can still be expensive to own. The standard exporter usually has the lowest total cost of ownership, because it changes slowly and behaves the same everywhere.

i
A Fair Rule of Thumb

Start with OTLP. Reach for a vendor exporter only when you can name a specific reason, such as a missing OTLP endpoint, a needed identity integration, or a vendor-only feature. If you cannot name the reason, the standard exporter is almost always the better choice.

13Good Habits and Design Patterns

Patterns are tried-and-true recipes. Habits are the small routines that keep your exporters dependable and your options open.

Pattern

OTLP in, vendor out

Applications send only OTLP. The Collector alone knows which vendor exporters to use. Changing vendors becomes a Collector change, not a company-wide project.

Pattern

Dual export for migration

During a vendor change, send the same data to the old and the new vendor for a while, compare results, and switch over only when you are satisfied.

Pattern

Process first, export last

Redact, filter, sample, and label before the exporter runs, so only clean and useful data leaves your network, and your bill stays sensible.

Pattern

Separate keys per environment

Give production, testing, and each team their own credentials, so a leak or a mistake stays small and can be traced.

Pattern

Custom-built Collector

Build a Collector that contains only the receivers, processors, and exporters you really use. It is smaller, quicker to start, and easier to secure.

Pattern

Debug beside the vendor

While testing, add the debug exporter next to the vendor exporter, so you can compare what was sent with what arrived.

The migration pattern in pictures

Changing vendors is frightening when it means rewriting applications. With a Collector in the middle, it becomes a careful experiment. You add the new vendor as a second destination, compare what both show, and remove the old one when you are ready.

flowchart LR
    APPS["Applications sending OTLP"] --> GW["Gateway Collector"]
    GW -->|"full stream"| OLD["Current vendor"]
    GW -->|"copy for comparison"| NEW["New vendor"]
    OLD --> CMP["Compare results"]
    NEW --> CMP
    CMP --> DEC{"Happy with the new vendor?"}
    DEC -->|Yes| CUT["Stop sending to the old vendor"]
    DEC -->|Not yet| FIX["Adjust settings and keep comparing"]
Figure 5: A safe vendor migration using dual export from one Collector

Follow the arrows. All applications keep sending OTLP to the same gateway, and nothing about them changes. The gateway sends the full stream to the current vendor and a copy to the new one. The team compares dashboards, alerts, and costs. If the new vendor is not ready, they adjust settings and keep comparing. When satisfied, they stop sending to the old vendor, and the migration is complete. Because the applications never changed, rolling back is as easy as adding the old destination again.

Habits that pay off

  • Prefer OTLP first. Switch to a vendor exporter only for a named reason.
  • Check the stability level. Prefer stable and beta components for production. Treat alpha and development components as experiments.
  • Know the maintainers. Look at who owns the component, how often it is updated, and how quickly issues are answered.
  • Pin versions and read release notes. A vendor exporter can change settings between versions, so upgrade on purpose, not by accident.
  • Test with real data. Verify names, units, and labels in the vendor’s screens after every significant change.
  • Turn on the queue and retries. Use a disk-backed queue for data you cannot afford to lose.
  • Control volume before export. Sampling, filtering, and dropping noisy labels are the cheapest cost savings you will ever make.
  • Document the destination map. Write down which data goes to which vendor, under which key, and who owns each key.
i
Reading a Component Page

When you open a component’s page in the registry or repository, look for three facts first: which signals it supports, what its stability level is for each, and who the code owners are. Those three facts tell you whether to trust it with production traffic.

14Common Mistakes, Anti-patterns, and Myths

Learning from other people’s mistakes is much cheaper than making your own.

An anti-pattern is a habit that looks sensible at first but causes trouble later. These four appear again and again in real exporter setups.

ANTI-PATTERN 01 · VENDOR CODE IN EVERY APPAvoid
What it looks like

Each application includes the vendor’s exporter library and its own copy of the secret key.

Why it hurts

Switching vendors means editing and redeploying every program. A leaked key must be replaced in dozens of places. Vendor code runs inside your business logic, and a slowdown there can slow your customers.

Better approach

Let applications send OTLP to a Collector, and keep vendor exporters and keys only in the Collector.

ANTI-PATTERN 02 · EXPORTING EVERYTHINGAvoid
What it looks like

All telemetry, including health checks, debug detail, and unbounded labels, is sent to the vendor “just in case.”

Why it hurts

Bills grow quickly, dashboards fill with noise, and private data may leave the network. The valuable signals are buried under rubbish.

Better approach

Filter, sample, and redact before export, and review the volume regularly.

ANTI-PATTERN 03 · TRUSTING EXPERIMENTAL COMPONENTSAvoid
What it looks like

A team builds a critical pipeline on an exporter labeled development or alpha because it was the first search result.

Why it hurts

Settings may change, features may be removed, and the component may be dropped. A routine upgrade then breaks the pipeline.

Better approach

Check the stability level, prefer mature components for production, and plan for change when you must use an early one.

ANTI-PATTERN 04 · NEVER LOOKING AT THE OTHER ENDAvoid
What it looks like

The team sees that the exporter reports success and assumes the vendor’s dashboards must be right.

Why it hurts

Translation may rename fields, drop attributes, or mishandle metric styles. Charts look plausible but are wrong, and decisions are made on bad numbers.

Better approach

Compare what was sent with what arrived, and check names, units, and values on the vendor’s side after every important change.

One further trap deserves mention. Teams sometimes build a delicate chain of renaming rules to make a vendor exporter produce exactly the names they like. Each rule seems small, but together they form a hidden layer that nobody fully understands, and it breaks quietly when either side changes. Prefer to follow the agreed semantic conventions and the vendor’s documented mappings, and add custom renaming only where it brings real value.

Myths and realities

MythReality
Using OpenTelemetry means you cannot use a vendor’s product.OpenTelemetry works with a large number of vendors. It simply lets you choose, and change your mind later.
A vendor exporter is always better than OTLP.When the vendor accepts OTLP, the standard exporter is usually simpler, cleaner, and more portable.
Sending OTLP to a vendor is lock-in.Only the endpoint and key belong to the vendor. Your instrumentation stays neutral.
All exporters are equally mature.Maturity varies widely, from stable to experimental. Always check the stability level.
The exporter makes the data safe.It only delivers. You must redact secrets, protect keys, and limit exits yourself.
Vendor exporters are written by the OpenTelemetry core team.Many are contributed and maintained by the vendors or community members, and their quality follows the care they receive.

15A Worked Example and Real-World Scenarios

Let us estimate how much data an exporter will carry, the way a platform engineer would, using simple arithmetic.

Imagine an online store whose services create about 30,000 spans per second at the busiest hour. About one fifth of those spans come from health checks that nobody ever reads. The team plans to keep one quarter of the remaining traces after sampling. Each span averages about one kilobyte when sent. These numbers are for illustration only; real systems must be measured.

StepCalculationResult
Spans createdMeasured at the source30,000 spans per second
After dropping health checks30,000 minus one fifth24,000 spans per second
After keeping one quarter24,000 divided by 46,000 spans per second
Data rate sent to the vendor6,000 times 1 kilobyteAbout 6 megabytes per second
Data per day6 megabytes times 86,400 secondsAbout 518 gigabytes
Data per 30 days518 gigabytes times 30About 15.5 terabytes
Without any filtering or sampling, per 30 days30 megabytes per second over 30 daysAbout 77.8 terabytes

Reading the table from the top, the filtering and sampling steps reduce the stream from 30 megabytes per second to 6 megabytes per second. That is an eighty percent reduction in the volume sent to the vendor, and, for vendors that bill by volume, a similar reduction in cost. The lesson is that the cheapest data to pay for is data you never export. Those two processing steps, done once in a central Collector, are worth far more than any clever exporter setting.

The table also warns about the migration pattern from the previous chapter. If the team sends the same stream to two vendors for comparison, the volume sent doubles for as long as the trial lasts. A common remedy is to compare using a smaller sample for the second vendor, which gives enough evidence at a fraction of the price.

The arithmetic above also helps a team talk calmly with a vendor. Instead of asking for a discount in the dark, the platform team can say how many gigabytes it expects each month and what it has done to keep that number reasonable. Vendors tend to respond better to customers who know their own data, and the team gains confidence that the bill will not surprise anyone.

Real-world scenarios

A start-up with one vendor

A small team has three services and one monitoring product that accepts OTLP. They use the standard OTLP exporter in each service pointing at the vendor’s address. It is simple, and they know that if they outgrow the product, only an address and a key need to change.

A company on a large cloud platform

A business runs everything on one cloud provider and wants its telemetry to land in that provider’s native monitoring tools. The Collector uses the provider’s exporter, which signs requests with the platform’s identity system. No long-lived key exists anywhere, which the security team likes very much.

An enterprise changing vendors

A large company wants to move from one observability product to another. Because every application already sends OTLP to a gateway Collector, the platform team adds the new vendor as a second destination, compares results for a month using a sample of the traffic, and then retires the old one. No application developer has to change a single line.

A regulated business with two destinations

A financial company sends detailed telemetry to an internal open source backend inside its own network, and a masked and sampled copy to an outside vendor for the support team. One Collector, two exporters, and different processors on each path make the arrangement simple to run and easy to audit.

The best exporter is the one you can swap on a quiet afternoon without telling a single application team.

16Frequently Asked Questions

Q1What is a vendor exporter in one sentence?
It is an OpenTelemetry component that sends telemetry to one specific company’s product, converting the data into that company’s own format and handling its addresses and credentials.
Q2What is the difference between a vendor exporter and the OTLP exporter?
The OTLP exporter speaks the standard OpenTelemetry language, which many destinations understand. A vendor exporter speaks the private language of one product. OTLP is neutral and portable, while a vendor exporter is specialized and tied to that product.
Q3Do I need a vendor exporter to use a vendor’s product?
Often not. Many vendors accept OTLP directly, so the standard exporter pointed at the vendor’s endpoint with your key is enough. Vendor exporters matter when the product lacks OTLP support or when you need a vendor-specific identity or feature.
Q4Where do vendor exporters live?
Most live in the Collector’s community collection, called contrib. Some vendors also provide SDK exporters or complete distributions. The project’s online registry lists components along with their stability levels.
Q5Should the application or the Collector hold the vendor exporter?
In most cases the Collector. That keeps applications vendor-neutral, keeps secret keys in one place, and lets you change vendors without touching application code. Direct export from the application is fine for small projects and quick tests.
Q6Will switching vendors be hard?
It is much easier if applications send OTLP to a Collector. You add the new vendor as a destination, compare, and remove the old one. If vendor exporters are embedded in applications, switching is a far bigger job.
Q7What does stability level mean?
It is a label showing how mature a component is, such as development, alpha, beta, or stable. Lower levels mean you should expect changes and possible removal. Prefer higher levels for production.
Q8Why do my metrics look strange at the vendor?
The most common causes are a mismatch between cumulative and delta styles, differences in histogram support, renamed metrics or units, and too many label combinations. Test one metric end to end and compare it with the vendor’s expectations.
Q9How do I keep my keys safe?
Store them in a proper secret store, load them into the Collector at start-up, use separate limited keys for each environment, rotate them regularly, and prefer cloud identity over static keys when the platform offers it.
Q10Can I send the same data to two vendors?
Yes. A pipeline can have several exporters, so the same data can be copied to a second destination. This is the standard way to compare products or migrate safely, though it doubles the volume while it lasts.
Q11Where should I start if I know nothing yet?
Send telemetry from one test application to a Collector over OTLP, and add the debug exporter to see what passes through. Then add a single exporter for your chosen destination, preferring OTLP, and confirm in the destination’s screens that the data looks right.

17Summary and Key Takeaways

The whole story in a few simple ideas you can carry with you.

Key Takeaways

  • An exporter carries telemetry out. A vendor exporter carries it to one specific company’s product, translating it into that company’s own format and adding the right address and credentials.
  • OTLP is the shared language. Many vendors now accept it directly, so the standard exporter is usually the simplest and most portable choice.
  • Vendor exporters still have a place. Use them when a destination lacks OTLP, when a platform’s own identity system helps, or when a vendor-only feature matters.
  • Keep applications neutral. Let applications send OTLP to a Collector, and keep vendor exporters and keys inside the Collector, where changes are easy.
  • Check maturity before trusting. Read each component’s stability level, its supported signals, and who maintains it, and pin versions.
  • Control what leaves. Filter, sample, and redact before export, protect your keys, and encrypt every connection, because the exporter is the exit door of your data.
  • Watch both ends. Monitor sent, failed, and queued counts at the Collector, and confirm in the vendor’s screens that names, units, and values are right.