New Relic observability is built around the concept of entities. This doc explains how we define entities, what you can do with them, and how you can create your own entities or groupings of entities.
Want an introductory tour of the New Relic platform? See Get to know the platform.
What's an entity?
From a New Relic perspective, entity is purposefully a broad concept. An entity is anything that a) reports data to New Relic or that contains data that we have access to, and b) is something we've identified with a unique entity ID. For most entities, the ID is indicated by the attribute
An entity can be any fundamental data-reporting component, like an application, a host, or a database service, but it can also refer to larger groupings of those components. For example, to monitor a data center, you could aggregate those hosts in New Relic to be a workload (a custom grouping of entities). That workload is, itself, also an entity.
Also very important is the relationships between entities. Our behind-the-scenes relationship-mapping helps us understand how entities are connected, how they affect each other. And this allows us to give you the power to configure how any data you're bringing in is related to existing entities, or how it's related to other entities.
Our focus on entities and their relationships is important because our goal is to give you practical information about your business-important entities, and not give you an unhelpfully huge stream of data from a huge list of monitored things. With more insight at the entity level, you can better monitor and troubleshoot complex, modern systems.
Find and explore entities and entity data
You can create new entity types for monitoring any data source. Learn more about entity synthesis.
Some tips for finding and understanding entity data:
- To find an entity's
entityNameand other metadata: from any list of monitored entities in the New Relic Explorer, click an entity's icon, and click See metadata and tags.
- For most entities, its GUID is reported as the attribute
entityGuid. For workloads, it's
workloadGuid. You can run NRQL queries to find entities by their GUID.
- To see connections between entities, you have several options:
- When viewing an entity in the UI, use the Related entities UI.
- Service maps.
- Distributed tracing.
- Our NerdGraph API.
- To group entities together, see Group entities.
- Customize entity definitions and relationships.
- To learn technical details about entity types, see our GitHub repo. In an entity type's
definitionfile, you'll see information like:
domain: for example,
type: for example,
- Default tags.
entityExpirationTime: how long data from that entity lasts in the UI, which is different from database data retention.
Group and organize entities
You can place entities into groups that reflect business-important relationships in your organization. For example, you might group all entities related to a specific team or department, or related to a specific service. Or you might group multiple hosts together to reflect their grouping in a data center.
To group your entities, see:
- Tag entities.
- Create workloads, which allow you to group business-important sets of entities.
- Create entities and customize entity data
Customize entity data with entity synthesis
If you have telemetry from any source that's not supported by New Relic out of the box, you can propose a mapping for it. Once approved, any telemetry received by New Relic that matches your definition file will be synthesized into an entity.
To learn more:
- For reserved attributes and how entity relationships are defined, keep reading this doc.
- For how to do the work of modifying existing entity types or creating new ones, see our GitHub repo on entity synthesis.
Reserved attributes for synthesized entities
These attributes are meant to be synthesized from the telemetry we receive. Do not set them unless you're aware of the implications and consequences.
Generally, you should not set this attribute field on your telemetry data. New Relic may add this field to ingested data to store a unique identifier for the entity associated with the data point. If telemetry arrives with the
One use case for passing this attribute is to associate ingested telemetry with an entity already created by New Relic. When the
This attribute shouldn't be put on ingested telemetry data unless you're trying to override the entity name that would have been selected by New Relic’s entity identification system. While New Relic won't change the value if it's already present on the data, New Relic may add the attribute to your data. Therefore invalid or unexpected values may cause undefined behavior such as missing entities in the UI, or telemetry not associating with the expected entities.
If this field is present on ingested telemetry, its value will be used to name the entity associated with the data point. This name will be used instead of the name selected by New Relic’s entity identification system (for example, entity synthesis definitions). Note that many entities use the name as part of their identification, so changing this field may result in the generation of a new entity.
This attribute shouldn't be put on ingested telemetry data except for certain legacy cases where it's required to distinguish entity types. Passing this field may interfere with entity detection, particularly if unrecognized values are sent in this field.
While New Relic won't change the value if already present on the data, the field is not guaranteed to provide unambiguous filtering of telemetry at query-time. Existing entity definitions already have overlapping values, and we recommend avoiding
This field is used by New Relic, meaning that invalid or unexpected values may cause undefined behavior such as missing entities in the UI, or telemetry not associating with the expected entities.
To learn how to do the work of modifying existing entity types or creating new ones, see our GitHub repo on entity synthesis.
Using your telemetry, New Relic can detect entities which are not being instrumented right now but are used by your application. For example, one of your instrumented entities may be calling an Amazon RDS database which is not currently instrumented by New Relic, so we cannot provide any tooling like monitoring or alerting for it.
In that case, we create a so-called "uninstrumented entity" together with the relationship with the instrumented one. It is displayed in the service map for the instrumented entity. We provide clear instructions to instrument it, displayed with just clicking over the entity.
Connections between entities are automatically created by New Relic based on what we can infer from your telemetry. For example, when two services that communicate using HTTP are instrumented with New Relic, we infer a "calls/called-by" relationship between them.
When viewing a specific entity in either the New Relic Explorer, Navigator, or Lookout, you can see its Related entities in the right pane. This gives a visualization of the various entities connected directly to the current entity. You can quickly view important metrics for these related entities and navigate from one entity to another, through all the connected parts of your stack.
Learn more about how entities are related with our NerdGraph API.
Types of entity relationships
Entities can be related to each other in various ways. The collapser below lists the supported entity relationships. Once you understand the possible relationships, take a look at the list of automatically created relationships or consider whether you want to create custom entity relationships.
Which relationships are automatically created?
Automatic relationships are created based on the telemetry that is being reported by the entities. These relationships have a Time To Live (TTL). This means that they will be automatically deleted if the metrics used to create the relationship are not reported in a given period of time. The default TTL for a relationship is 75 minutes. The TTL is configurable for each relationship, and it can go from 10 minutes up to 3 days.
These are the relationships between entities that we create automatically:
Create custom entity relationships
When relationships are not automatically detected, you can manually create them using our NerdGraph API, or you can do it in the New Relic UI with the Add/edit related entities link in Related entities.
Currently, you can only manually create calls/called-by relationships between service entities.
To manage manual relationships, you need to have modify and delete capabilities on entity relationships. If you don’t see the edit relationships button, contact your account admin.