---
title: Gateway UI guide
source: https://docs.newrelic.com/docs/new-relic-control/pipeline-control/gateway/ui-guide
---

The Pipeline Control gateway UI provides a form-based interface for creating and managing gateway rules without writing YAML directly. The UI organizes processing logic into three rule categories: sample rate, filter, and transform. Each category is configurable through guided modal dialogs.

## UI organization

The gateway UI is organized into three main sections:

### Sample rate

Configure probabilistic sampling with conditional rules to control what percentage of telemetry data reaches New Relic. Supports:

-   Default sampling percentage (0-100%)
-   Conditional sampling scenarios based on attribute matching

**Common use cases:**

-   "Sample 90% of B service logs, 83% of A service logs"
-   "Keep 100% of errors, 100% of traces >1000ms, sample 10% of remaining"

### Filter

Create OTTL-based filter rules to conditionally filter entire telemetry records or specific attributes. Supports:

-   Pattern matching with `matches` operator for regex
-   Attribute-based filtering (environment, metric name, log level)
-   Combined conditions with `and`/`or` logic
-   Comparison operators (`==`, `!=`, `>`, `<`, `>=`, `<=`)

**Common use cases:**

-   "Drop test environment data"
-   "Drop debug-level logs in production"
-   "Remove health check spans"
-   "Drop metrics with test prefix"

### Transform

Define OTTL-based transformation rules to modify, enrich, or parse telemetry data. Supports:

-   Attribute addition and modification using OTTL functions
-   String parsing with regex patterns
-   Conditional transformations with matching rules
-   Multiple OTTL statements per transformation

**Common use cases:**

-   "Add environment and region tags to all metrics"
-   "Parse NGINX log format into structured attributes"
-   "Normalize service names across environments"
-   "Extract HTTP status codes from log messages"

## Create rules in the UI

### Creating a sample rate rule

1.  In the gateway UI, in the sample rate block, click the gear/settings icon to create a new sampling configuration.

2.  Configure global sampling:
    -   Set the global sampling percentage (0-100%).
    -   Use the slider or enter a numeric value.
        This applies to all data that doesn't match conditional rules.

3.  Add conditional scenarios (optional):
    -   Click PLUS icon to create condition-specific sampling rates.
    -   For each scenario, configure: A descriptive name (for example, "`B service sample`"), a description (for example, "`B service description`"), an attribute-matching expression (for example, `attributes["appName"]=="TelemetryApp-ServiceB"`), a sampling percentage using the slider or enter a numeric value (0-100%)

4.  Click **Save sample criteria** to apply sampling rules.

### Create a filter rule

1.  In the gateway UI, click the PLUS icon in the filter block to create a new filter rule.
2.  Configure basic information:
    -   **Rule name**: Enter a descriptive name.
    -   **Description**: Explain what the rule does.
3.  Define a condition to match your data and click **Create rule**.
4.  To add more conditions as required, repeat steps 1-3.

### Create a transform rule

1.  In the gateway UI, click the PLUS icon in the transformations block to create a new transformation rule.

2.  **Configure basic information**:
    -   **Rule name**: Enter a descriptive name (for example, "`parse-nginx-logs`")
    -   **Description**: Explain what the transformation does

3.  **Define conditions to match your data**:

    -   Add conditions to target specific telemetry records.
    -   Click **Add condition** to add multiple conditions:

    Multiple conditions are evaluated with OR logic (if any condition matches, the transformation applies). Example conditions: `body == "request failed"`, `severity.text == "ERROR"`, `severity.text == "FATAL_ERROR"`
    Leave empty to apply transformation to all records. Each condition is shown in a separate input field with the `OR` operator between them.

4.  **Define OTTL statements**:
    -   Add one or more OTTL transformation statements.
    -   Click **Add statement** to add multiple transformations.
    -   Each statement executes in sequence. Change the order by dragging the handle on the left of each statement.
    -   Example statements using OTTL functions: `set(severity_text, "FAIL")`, `set(attributes["processors"], true)`, `set(attributes["environment"], "staging")`

5.  Click **Preview rule** to see how the transformation modifies sample data.

6.  Make changes until you are satisfied with the transformation.

7.  Click **Create rule** to add the transformation to your gateway.

8.  Click **Save draft** to save your newly created configuration version.

### Deploy your changes

After you have configured the rules, follow these steps to deploy your configuration:

1.  Click **Create Deployment**.
2.  On the new deployment page, review the pre-populated information:
    -   A default name and description are provided. You can edit these to help track your changes.
    -   The deployment automatically includes the agents associated with your current fleet.
    -   The system defaults to your configuration version.
        If you want, you can change these details.
3.  Click **Start deployment** to apply the configuration.
4.  You have to again confirm that you want to start the deployment. Click **Start deployment** again to confirm.

It takes a couple of minutes for the deployment to complete.

## OpenTelemetry resources

-   [OTTL functions reference](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/pkg/ottl/ottlfuncs/README.md) - Complete list of OTTL functions for transformations and boolean expressions for filtering
-   [Transform processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/transformprocessor) - Official transform processor documentation
-   [Filter processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/filterprocessor) - Official filter processor documentation with OTTL boolean expression syntax
-   [Probabilistic sampler processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/probabilisticsamplerprocessor) - Official sampling processor documentation
