---
title: "About Devo tags"
canonical: "https://docs.devo.com/space/latest/95126204/About%20Devo%20tags"
format: markdown
---
> Macro (toc)

**Tags** are at the heart of what makes Devo such a powerful and efficient data operations platform. 

Devo uses tags to identify each event's data source and store them in the repository in the same file as all the other events that share the same tag. When events arrive to the platform, each one is assigned a **timestamp**, or **eventdate**, used to order events chronologically as they are received. Events are then saved in their original, unparsed format, to a directory and file that is based upon the tag they arrive with.

![image](media://7419bd72-afb7-48ab-ab8d-04f84f407eb8)

Analysts working with Devo later use the tag as a way of identifying the log file they want to query [using the Finder](https://devodocs.atlassian.net/wiki/spaces/latest/pages/94764396). When a tag is selected in the Finder, the events in the file are parsed for display in the query window, using the parser associated with that tag. 

Devo has pre-defined tags for hundreds of common data sources. This means that Devo is already capable of correctly parsing the data source's events. For more details, [read about the supported technologies](https://devodocs.atlassian.net/wiki/spaces/latest/pages/94666383).

This article describes the following topics related to Devo tags:

> Macro (toc)

## <span style="color: #000000">How events are tagged</span>

Tags can be applied to events in a few different ways. The important thing is that all events that are delivered to the Devo are associated with the correct tag. Tags can be associated with events:

- At the data source. For example, [rsyslog ](https://devodocs.atlassian.net/wiki/spaces/latest/pages/94658299)offers the ability to associate tags to the data it sends.
- By the [Devo Relay](https://devodocs.atlassian.net/wiki/spaces/latest/pages/96469224). Tags are applied by rules that process incoming events depending on the relay entry port.

## The structure of a tag

In Devo, tags are composed of **multiple elements** (or levels), a minimum of two and a maximum of six, separated by dots following this general format:

![image](media://9e0b73f3-927e-4083-9ec4-006324692e5a)

The two first elements, **technology,** and **brand**, are mandatory and help to identify and categorize the data source. For example, **web.apache** or **web.nginx** are different tag elements used to describe the data sources as web servers, and the brands indicate the vendor. 

The **type** and **subtype** elements are optional but you will find that in most cases, either one or both are needed to describe the specific data source (log file). Continuing our example, both Apache and Nginx web servers generate logs of several types. As a result, the tags for the Nginx access and error logs are **web.nginx.accesslt** and **web.nginx.error**. 

For an Apache server, these are **web.apache.accesslt **and **web.apache.error**. Now, a company may have several web servers and therefore several access logs. The **subtype** element is appended to distinguish between logs of the same type by identifying the specific machine that is generating the log events. The subtype can include up to three levels in itself - this can be useful when formulating your subtypes. For example, we could end up with a complete tag like **web.apache.error.pro.devo.server1** that identifies events from an Apache Web Server error log generated by the machine **pro.devo.server1**.

The main rules for the structure of tags are:

- Each tag can have up to **six levels** of detail, the first three being the technology, brand, and type. The subtype can then contain up to three parts.
- The tag can only be made of alphanumeric characters and periods. They cannot contain special characters or symbols.
- The maximum length of a tag is 50 characters.

| Correct Syntax | Incorrect Syntax |
| --- | --- |
| **box.unix**<br>**web.apache**<br>**web.apache.error.pro.devo.server1**<br>**a.b.c ** | **box.unix.** is incorrect because it ends with a period.<br>**web.apache.error.pro.devo/inc.server1 **is incorrect because it contains a special character ( "/" ).<br>**a[ ].b.c **is also incorrect because it contains special characters ("[]"). |

> ⚠️ **Consult Devo parsers**
> ⚠️ 
> ⚠️ You can only use the tags in the [List of Devo parsers](https://devodocs.atlassian.net/wiki/spaces/latest/pages/94659363) or tags that have been defined for you by the Devo Professional Services team. These are the tags associated with the utility necessary to parse the associated events. In most cases, unless otherwise indicated, the tags are listed by the first few "fixed" levels, and subsequent levels can be user-defined, or "free".

## Fixed tag elements

Some elements in the structure of a tag need to match a set of fixed values set by Devo. This is always true for **technology **and **brand**, but is also sometimes the case for **type **and **subtype**. Tag elements that must use predefined values are called fixed elements.  

<span style="color: #000000">For example, the third element in Apache log tags is </span><span style="color: #000000">**type **</span><span style="color: #000000">and identifies the type of log event. Its values</span><span style="color: #000000">** **</span><span style="color: #000000">are limited to the log types produced by Apache and recognized by Devo:</span>

- <span style="color: #000000">If the </span><span style="color: #000000">**type**</span><span style="color: #000000"> is </span><span style="color: #000000">**error **</span><span style="color: #000000">(as in </span><span style="color: #000000">**web.apache.error**</span><span style="color: #000000">), Devo recognizes the events as Apache log error events and will parse it according to the Apache error format. </span>
- <span style="color: #000000">If the </span><span style="color: #000000">**type**</span><span style="color: #000000"> is </span><span style="color: #000000">**accessclf **</span><span style="color: #000000">(as in </span><span style="color: #000000">**web.apache.accessclf**</span><span style="color: #000000">), Devo recognizes the events as generated by an Apache access log and will parse it according to the corresponding Apache log format. </span>

## Free tag elements

In some cases, the **type** and **subtype** elements can be either partly or completely user-defined. Let's look at the example of Apache Web Server logs again. The technology and brand must be **web **and** apache**. The** type*** *element must have a recognized value from among the log type generated by the web server. The **subtype** element, however, is partly free because the user can define the values but Devo requires there to be three parts and that they conform to a guide that will help to further identify the type of data. Check out the [web.apache tag article](https://devodocs.atlassian.net/wiki/spaces/latest/pages/94666290) for more details.

## The unknown unknowns

When Devo does not recognize the event's tag or when the event is received without a tag, Devo saves it with an eventdate in the **unknown.unknown** table like this:

![image](media://a57a7026-a907-4d51-8218-b4da839093a3)

Proprietary logs or data from a product not yet supported by Devo can be marked with the tag **my.app**. This tag has been defined specifically for all types of common data coming from unknown sources. The first time Devo receives an event with a tag starting with **my.app**, it will generate a notification to inform you.

![image](media://eaddbca6-157f-4d52-ab70-5263cbb78d10)