---
title: Adding Parsers
slug: telemetry-pipeline/adding-parsers
docTags: 
createdAt: 2025-11-26T09:24:33.112Z
---

# Parameter-Driven Parser Templates

The platform allows you to convert any parser function into a reusable, parameter-driven template. Instead of requiring users to understand parsing syntax or VRL structure, you can define dynamic parameters using the $parameterN$ format. Each parameter you define becomes an editable field in the UI, enabling users to configure complex parsing logic simply by entering values.

There is no limit to the number of parameters you can create. For example:

:::BlockQuote
$parameter1$
$parameter2$
$parameter3$
:::

Each of these becomes an editable input field when the template is used.

You can also add descriptions for each parameter by defining inline comments under the template using the #parameterN format. These explanations appear in the UI to guide the user when filling out the form fields. For example:

:::BlockQuote
\#parameter1 = "Description of what this parameter controls."
\#parameter2 = "Explanation of valid values or usage."
\#any\_other\_parameter = "Optional notes or constraints."
:::

By combining parameter placeholders and descriptive comments, you can create fully dynamic, user-friendly parser templates. Once created, templates can be saved in the library and reused across pipelines without requiring any knowledge of the underlying syntax.

## File Upload Requirements

- **Uploaded files must have a .conf extension.**
  &#x20;Only configuration files ending with this extension are accepted to ensure correct parsing and format consistency.&#x20;
- **Files may be uploaded even if they contain no parameters.**
  &#x20;Empty or placeholder configuration files are supported.&#x20;
- **Multiple .conf files can be uploaded at once.**
  &#x20;This allows batch loading and streamlined configuration during deployment or updates.&#x20;

## How to Upload a File

1. Navigate to **Library**.&#x20;
2. Click **Template**.&#x20;
3. Click the **Add Template** button in the top-right corner.&#x20;
4. Select **Parser Template**.&#x20;
5. Drop your .conf file(s) into the grey upload zone, or click the zone to browse.&#x20;
6. Click **Upload**.&#x20;

# Example Template

:::BlockQuote
parsed, err = parse\_key\_value(
&#x20;   .message,
&#x20;   field\_delimiter: "$parameter1$",
&#x20;   key\_value\_delimiter: "$parameter2$"
)
:::

# Parameter Descriptions

:::BlockQuote
\#parameter1 = "Specifies the character or string used to separate individual key-value pairs within the message. For example, a semicolon ';' or newline delimiter would split the text into distinct segments for parsing. This parameter determines how the parser identifies individual fields."
\#parameter2 = "Defines the delimiter between each key and its corresponding value. Common examples include '=' or ':'. This parameter tells the parser where keys end and values begin, ensuring accurate extraction of structured data."
:::

## This example should look like this in a text editor:

![](https://api.archbee.com/api/optimize/g9cApVza9NIhSh0pjZYtA/D7O52f-3BOpWm4QH3MmX3_image.png)

:::BlockQuote
parsed, err = parse\_key\_value(
&#x20;   .message,
&#x20;   field\_delimiter: "$parameter1$",
&#x20;   key\_value\_delimiter: "$parameter2$"
)

\#parameter1 = "Specifies the character or string used to separate individual key-value pairs within the message. ..."
\#parameter2 = "Defines the delimiter between each key and its corresponding value. ..."
:::

## This uploaded file will look like this:



![](https://api.archbee.com/api/optimize/g9cApVza9NIhSh0pjZYtA/evSQpCKWaybdczZCPt6ly_image.png)

