On-Premise SDK Usage

Starting with Arize AX Self-Hosted release 10.4.0, a single unified endpoint was introduced to simplify ingress configuration. Support for multiple endpoints remains available as an option.


Single Endpoint

With single endpoints, all services are available through a common host address and port:

Host
Function

arize-app.<domain>

  • Arize AX UI

  • SDK panda uploads and logs

  • OTEL traces with GRPC

  • OTEL traces with HTTP

  • Flightserver import/export, datasets.

Example with Arize SDK

URI = "https://arize-app.<domain>/v1"
arize_client = Client(space_key=SPACE_KEY, api_key=API_KEY, uri=URI)

Example with Arize SDK with Evaluations

arize_client = Client(
    space_key=SPACE_KEY,
    api_key=API_KEY,
    uri="https://arize-app.<domain>/v1",
    host="arize-app.<domain>"
    ...
)

Example with OTEL traces and GRPC

# gRPC
tracer_provider = register(
    endpoint = "https://arize-app.<domain>/v1",
    space_id = SPACE_ID,
    # transport = Transport.GRPC, # default
    ...
)

Example with OTEL traces and HTTP

from arize.otel import Transport
tracer_provider = register(
    endpoint = "https://arize-app.<domain>/v1/traces",
    space_id = SPACE_ID,
    transport = Transport.HTTP,
    ...
)

Example with FlightServer Export Client

client = ArizeExportClient(host='arize-app.<domain>', ...)

Example with FlightServer Datasets Client

client = ArizeDatasetsClient(host='arize-app.<domain>', ...)

Multiple Endpoints

If your deployment is configured with multiple endpoints, it requires different ingress configurations and host addresses:

Host
Function

arize-app.<domain>

  • Arize AX UI

  • Auth

  • Copilot

arize-api.<domain>

  • SDK panda uploads and logs

arize-otlp.<domain>

  • OTEL traces (GRPC/HTTP)

arize-flight.<domain>

  • Flightserver import/export, datasets.

Example with Arize SDK

URI = "https://arize-api.<domain>/v1"
arize_client = Client(space_key=SPACE_KEY, api_key=API_KEY, uri=URI)

Example with OTEL traces and GRPC

tracer_provider = register(
    endpoint = "https://arize-otlp.<domain>/v1",
    space_id = SPACE_ID,
    ...
)

Example with OTEL traces and HTTP

tracer_provider = register(
    endpoint = "https://arize-otlp.<domain>/v1/traces",
    space_id = SPACE_ID,
    ...
)

Example with FlightServer Export Client

client = ArizeExportClient(host='arize-flight.<domain>', ...)

Example with FlightServer Datasets Client

client = ArizeDatasetsClient(host='arize-flight.<domain>', ...)

Using a Self-Signed Certificate

If your deployment uses a self-signed certificate, follow the relevant instructions below for your deployment type and use case.

Obtaining the Root CA Certificate

First, obtain the root CA certificate that was used to sign your endpoint's certificate. This root certificate is typically managed by the security team and is common across environments.

Extracting the Certificate(If Root CA Certificate is not available)

If providing the root certificate doesn't resolve the issue or is not an option, an alternative approach is to extract the certificate directly from the endpoint and create the cert.pem file.

echo | openssl s_client -showcerts -state -connect <host>:443 -prexit > cert.pem

Arize SDK

  • Temporarily disable certificate validation (not recommended for production):

    arize_client = Client(space_key=SPACE_KEY, api_key=API_KEY, uri=URI, request_verify=False)
  • Provide the root certificate file:

    arize_client = Client(space_key=SPACE_KEY, api_key=API_KEY, uri=URI, request_verify="cert.pem")

OTEL Traces (GRPC/HTTP)

  • Set the OTEL_EXPORTER_OTLP_CERTIFICATE environment variable to your root certificate:

    os.environ["OTEL_EXPORTER_OTLP_CERTIFICATE"] = "cert.pem"

FlightServer Export/Datasets Client

  • Set the GRPC_DEFAULT_SSL_ROOTS_FILE_PATH environment variable to your root certificate:

    import certifi
    os.environ['GRPC_DEFAULT_SSL_ROOTS_FILE_PATH'] = certifi.where()

Last updated

Was this helpful?