Before you begin: Complete Build your logic. You need a container image that starts, serves GetMutations, and exposes the gRPC health check and /metrics endpoints.
Validation is where you prove your container behaves correctly and fast enough before any production traffic reaches it. Nothing here requires a deployment, and most of it requires no involvement from Index at all. This is the cheapest place to find problems, so spend time here rather than debugging in production.
Three layers of validation
Work through them in order. Each layer is faster and cheaper than the one after it, so failing early saves you time.
| Layer | What it proves | What you need |
|---|---|---|
1. Local, with ARTF | Your handler parses real payloads, returns well-formed mutations, and returns the right status codes. Uses the IAB | Nothing from Index. Start immediately. |
2. The Index testing tool | Your container holds up against a live-like environment, and its responses are checked against the same rules Index applies in production, including latency. | Docker Hub access, provisioned by your Index Representative. |
3. The auto-deploy checklist | Your image is actually eligible to deploy: correct artifact naming, a clean vulnerability scan, and the required endpoints exposed. | A vulnerability scanner, such as |
Note: The testing tool will not send any test traffic at all until your gRPC health check and /metrics endpoint
A URL which is configured to interact with a server in a specific way. both pass. If the tool exits immediately, that is almost always the reason.
What gets measured
Two things decide whether your container is production-ready, and only one of them is about correctness:
Correctness. Every mutation you return has to be valid for the extension point it came from, and match the schema in the Mutation reference. Index validates and applies mutations atomically, so a malformed mutation is dropped rather than partially applied.
Latency. Your response has to arrive within
tmax, fixed at 5ms, to be used in the auction. Separately, your p95 has to stay under 30ms at the Publisher
The owner of a website or app where advertisements are served. Request extension point, or under 5ms at DSP
Demand-Side Platform (DSP). A software platform that automates bidding decisions in real-time and efficiently connects buyers and audiences through an ad exchange or SSP. Also known as a buy-side platform. Bid Response
An OpenRTB response that is sent by the DSP in response to the SSP's or ad exchange's bid request. It is an event directed back to the seller expressing a valuation for the request and conditions of sale.. Cross that threshold and traffic to your container is throttled automatically. Validate this under representative load, not with a single request, and against the extension point you actually run at. See the Latency section in Build a gRPC RTD service.
Your rpc.server.duration histogram is what both you and Index use to judge latency, so confirm it is being emitted correctly here rather than discovering it is missing after deployment.
Topics in this section
Validating a container. What to implement and configure before testing, and how to test locally with the ARTF reference tools.
Using the Index testing tool. Getting access, the flags that matter, choosing request samples, running the tool, and reading the results.
Checklist: What must pass before a container can auto-deploy. Run through this last, immediately before your first push.
Alongside your own testing, Index conducts its own functional testing on your service before it is deployed to production. A container that does not meet the specifications in this guide may not be deployed.
Next
Once all three layers pass, you are ready to Deploy your container.