Deploy NetScaler® Observability Exporter (NSOE) by using NetScaler Operator

Last published : Nov 14, 2026
NetScaler Observability Exporter is a container that collects metrics and transactions from NetScaler and transforms them to suitable formats, such as JSON and AVRO. You can export the data collected by NSOE to any desired endpoint for analysis and get valuable insights at the microservices level for applications proxied by NetScaler devices.

Prerequisites

  • Red Hat OpenShift Cluster (version 4.11 or later).
  • Deploy NetScaler Operator. See Deploy NetScaler Operator.
  • Because NSOE operates via any User ID (uid), deploy the following security context constraints (SCC) for the namespace in which NSOE is deployed.
    oc adm policy add-scc-to-user anyuid system:serviceaccount:<namespace>:default

Deploy NetScaler Observability Exporter using NetScaler Operator

Perform the following steps:
  1. Log in to the OpenShift 4.x Cluster console.
  2. Navigate to Operators > Installed Operators and select NetScaler Operator.
    NetScaler Ingress Controller Operator
  3. Click NetScaler Observability Exporter and select Create NetScalerObservabilityExporter .
    NetScaler Ingress Controller Create
    The NetScaler Observability Exporter YAML definition is displayed. Optionally, you can select Form view button and update the parameters in a form.
    Parameter lists
  4. Refer the following table that lists the mandatory and optional parameters and their default values that you can configure during installation.
    Parameters Mandatory or Optional Default value Description
    acceptLicense Mandatory No Set this value to Yes to accept the NSOE EULA.
    affinity Optional N/A Affinity labels for pod assignment.
    nodePortRequired Optional false Set this parameter to true to create a NSOE nodeport service.
    nodeSelector Optional N/A The node label key:value pair to be used for the nodeSelector option in an NSOE deployment.
    podAnnotations Optional N/A Map of annotations to add to the pods.
    pullPolicy Optional IfNotPresent The NSOE image pull policy.
    replicas Optional 1 The number of NSOE pods that run at any given time.
    resources Optional N/A CPU/memory resources for an NSOE container.
    tolerations Optional N/A The tolerations for an NSOE deployment.
    headless Optional false Set this parameter to true to create a headless service.
    image Mandatory quay.io/netscaler/netscaler-observability-exporter@shavalue of latest NSOE image The NSOE image hosted on Quay.io. Used only when upgradeImageAlways is false.
    upgradeImageAlways Optional true When true (the default), the operator deploys the image that is built into this operator release and ignores the image value. Set it to false to deploy the image that you specify in image.
    nsoeLogLevel Optional INFO The log level to control the logs generated by NSOE. The supported log levels are: NONE, FATAL, ERROR, INFO, and DEBUG.
    Parameters Mandatory or Optional Default value Description
    : elasticsearch:
    enabled Optional false Set this parameter to true to enable an Elasticsearch endpoint for transactions.
    indexPrefix Optional adc_nsoe The Elasticsearch index prefix to upload the transactions.
    server Optional http://elasticsearch:9200 The Elasticsearch endpoint.
    Parameters Mandatory or Optional Default value Description
    : jsonTransRateLimiting:
    enabled Optional false Set this parameter to true to enable rate-limiting of transactions for JSON-based endpoints, such as Splunk, ElasticSearch, and Zipkin.
    limit Optional 100 The rate limit for JSON transactions. Hundred amounts to approximately 800 TPS.
    queueLimit Optional 1000 The amount of transactional data that can be saved before NSOE starts shedding them. For Zipkin, 1000 amounts to approximately 64 MB of data. For Splunk and ElasticSearch, 1000 amounts to approximately 32 MB of data.
    window Optional 5 The recalculation window in seconds. The lower the window size (any value greater than 0), the more effective is the rate limiting. However, setting a lower window size results in CPU overhead.
    Parameters Mandatory or Optional Default value Description
    : kafka:
    auditLogs Optional no Set this parameter to yes to export the audit logs to Kafka.
    broker Optional N/A The kafka broker IP address.
    dataFormat Optional JSON The format of the data exported to Kafka. Possible values are JSON and AVRO. The console sample pre-fills AVRO.
    enabled Optional false Set this parameter to true to enable sending transaction data to the kafka server.
    events Optional no Set this parameter to yes to export events to Kafka.
    topic Optional HTTP The kafka topic details to upload data.
    Parameters Mandatory or Optional Default value Description
    : nstracing:
    enabled Optional false Set this parameter to true to enable sending trace data to a tracing server.
    server Optional zipkin:9411/api/v1/spans The tracing server API endpoint.
    Parameters Mandatory or Optional Default value Description
    : splunk:
    authToken Optional N/A The authentication token for Splunk.
    enabled Optional false Set this parameter to true to enable sending transaction data to the Splunk server.
    indexPrefix Optional adc_nsoe The Splunk index prefix to upload the transactions.
    server Optional http://splunk:8088 The Splunk server API endpoint.
    Parameters Mandatory or Optional Default value Description
    : timeseries:
    enabled Optional false Set this parameter to true to enable metrics data upload in Prometheus format. Currently, Prometheus is the only metrics endpoint supported.
    nodePort Optional N/A The node port for the metrics endpoint (port 5563) on the NSOE node port service. Used only when nodePortRequired and timeseries.enabled are true. If not set, Kubernetes assigns a node port.
    Parameters Mandatory or Optional Default value Description
    : transaction:
    nodePort Optional N/A The node port for the transaction endpoint (port 5557) on the NSOE node port service. Used only when nodePortRequired is true. If not set, Kubernetes assigns a node port.
    Notes:
    NSOE can be deployed in multiple namespaces. Also, multiple instances of NSOE can also be deployed in the same namespace, provided the deployment name is different for each instance. Before deploying, ensure that the prerequisite any-uid SCC is deployed for the target namespace.
  5. After updating the values for the required parameters, click Create.
    Ensure that the NetScaler Observability Exporter is successfully deployed.
    NetScaler Observability Exporter Instance
  6. Navigate to Workloads > Pods section and verify that the NetScaler Observability Exporter pod is up and running.
    Application Pod UP and Running