Documentation ¶
Overview ¶
Package entities provides a programmatic API for interacting with New Relic One entities. It can be used for a variety of operations, including:
- Searching and reading New Relic One entities
- Creating, reading, updating, and deleting New Relic One entity tags
Authentication ¶
You will need a valid Personal API key to communicate with the backend New Relic API that provides this functionality. See the API key documentation below for more information on how to locate this key:
https://docs.newrelic.com/docs/apis/get-started/intro-apis/types-new-relic-api-keys
Package entities provides a programmatic API for interacting with New Relic One entities.
Example (Entity) ¶
// Initialize the client configuration. A Personal API key is required to // communicate with the backend API. cfg := config.New() cfg.PersonalAPIKey = os.Getenv("NEW_RELIC_API_KEY") // Initialize the client. client := New(cfg) // Search the current account for entities by name and type. searchParams := SearchEntitiesParams{ Name: "Example entity", Type: EntityTypes.Application, } entities, err := client.SearchEntities(searchParams) if err != nil { log.Fatal("error searching entities:", err) } // Get several entities by GUID. var entityGuids []string for _, e := range entities { entityGuids = append(entityGuids, e.GUID) } entities, err = client.GetEntities(entityGuids) if err != nil { log.Fatal("error getting entities:", err) } // Get an entity by GUID. entity, err := client.GetEntity(entities[0].GUID) if err != nil { log.Fatal("error getting entity:", err) } // Output the entity's URL. fmt.Printf("Entity name: %s, URL: %s\n", entity.Name, entity.Permalink)
Output:
Example (Tags) ¶
// Initialize the client configuration. A Personal API key is required to // communicate with the backend API. cfg := config.New() cfg.PersonalAPIKey = os.Getenv("NEW_RELIC_API_KEY") // Initialize the client. client := New(cfg) // Search the current account for entities by tag. searchParams := SearchEntitiesParams{ Tags: &TagValue{ Key: "exampleKey", Value: "exampleValue", }, } entities, err := client.SearchEntities(searchParams) if err != nil { log.Fatal("error searching entities:", err) } // List the tags associated with a given entity. This example assumes that // at least one entity has been returned by the search endpoint, but in // practice it is possible that an empty slice is returned. entityGUID := entities[0].GUID tags, err := client.ListTags(entityGUID) if err != nil { log.Fatal("error listing tags:", err) } // Output all tags and their values. for _, t := range tags { fmt.Printf("Key: %s, Values: %v\n", t.Key, t.Values) } // Add tags to a given entity. addTags := []Tag{ { Key: "environment", Values: []string{ "production", }, }, { Key: "teams", Values: []string{ "ops", "product-development", }, }, } err = client.AddTags(entityGUID, addTags) if err != nil { log.Fatal("error adding tags to entity:", err) } // Delete tag values from a given entity. // This example deletes the "ops" value from the "teams" tag. tagValuesToDelete := []TagValue{ { Key: "teams", Value: "ops", }, } err = client.DeleteTagValues(entityGUID, tagValuesToDelete) if err != nil { log.Fatal("error deleting tag values from entity:", err) } // Delete tags from a given entity. // This example delete the "teams" tag and all its values from the entity. err = client.DeleteTags(entityGUID, []string{"teams"}) if err != nil { log.Fatal("error deleting tags from entity:", err) } // Replace all existing tags for a given entity with the given set. datacenterTag := Tag{ Key: "datacenter", Values: []string{ "east", }, } replaceTags := []Tag{datacenterTag} err = client.ReplaceTags(entityGUID, replaceTags) if err != nil { log.Fatal("error replacing tags for entity:", err) }
Output:
Index ¶
- Variables
- type ApmApplicationEntity
- type ApmApplicationEntityOutlineRunningAgentVersions
- type ApmApplicationEntityOutlineSettings
- type BrowserApplicationEntity
- type Entities
- func (e *Entities) AddTags(guid string, tags []Tag) error
- func (e *Entities) DeleteTagValues(guid string, tagValues []TagValue) error
- func (e *Entities) DeleteTags(guid string, tagKeys []string) error
- func (e *Entities) GetEntities(guids []string) ([]*Entity, error)
- func (e *Entities) GetEntity(guid string) (*Entity, error)
- func (e *Entities) ListTags(guid string) ([]*Tag, error)
- func (e *Entities) ReplaceTags(guid string, tags []Tag) error
- func (e *Entities) SearchEntities(params SearchEntitiesParams) ([]*Entity, error)
- type Entity
- type EntityAlertSeverityType
- type EntityDomainType
- type EntityType
- type SearchEntitiesParams
- type Tag
- type TagValue
- type Type
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var ( // EntityAlertSeverities specifies the possible alert severities for a New Relic One entity. EntityAlertSeverities = struct { Critical EntityAlertSeverityType NotAlerting EntityAlertSeverityType NotConfigured EntityAlertSeverityType Warning EntityAlertSeverityType }{ Critical: "CRITICAL", NotAlerting: "NOT_ALERTING", NotConfigured: "NOT_CONFIGURED", Warning: "WARNING", } )
var ( // EntityDomains specifies the possible domains for a New Relic One entity. EntityDomains = struct { APM EntityDomainType Browser EntityDomainType Infrastructure EntityDomainType Mobile EntityDomainType Nr1 EntityDomainType Synthetics EntityDomainType Visualization EntityDomainType }{ APM: "APM", Browser: "BROWSER", Infrastructure: "INFRA", Mobile: "MOBILE", Nr1: "NR1", Synthetics: "SYNTH", Visualization: "VIZ", } )
var ( // EntityTypes specifies the possible types for a New Relic One entity. EntityTypes = struct { Application EntityType Browser EntityType Dashboard EntityType Host EntityType Mobile EntityType Monitor EntityType Workload EntityType }{ Application: "APM_APPLICATION_ENTITY", Browser: "BROWSER_APPLICATION_ENTITY", Dashboard: "DASHBOARD_ENTITY", Host: "INFRASTRUCTURE_HOST_ENTITY", Mobile: "MOBILE_APPLICATION_ENTITY", Monitor: "SYNTHETIC_MONITOR_ENTITY", Workload: "WORKLOAD_ENTITY", } )
Functions ¶
This section is empty.
Types ¶
type ApmApplicationEntity ¶ added in v0.16.0
type ApmApplicationEntity struct { Language *string `json:"language,omitempty"` RunningAgentVersions *ApmApplicationEntityOutlineRunningAgentVersions `json:"runningAgentVersions,omitempty"` Settings *ApmApplicationEntityOutlineSettings `json:"settings,omitempty"` }
ApmApplicationEntity represents the unique fields returned on the ApmApplicationEntity interface
type ApmApplicationEntityOutlineRunningAgentVersions ¶ added in v0.16.0
type ApmApplicationEntityOutlineSettings ¶ added in v0.16.0
type BrowserApplicationEntity ¶ added in v0.16.0
type BrowserApplicationEntity struct {
ServingApmApplicationID *int `json:"servingApmApplicationId,omitempty"`
}
BrowserApplicationEntity represents the unique fields returned on the BrowserApplicationEntity interface
type Entities ¶
type Entities struct {
// contains filtered or unexported fields
}
Entities is used to communicate with the New Relic Entities product.
func (*Entities) DeleteTagValues ¶
DeleteTagValues deletes specific tag key and value pairs from the entity.
func (*Entities) DeleteTags ¶
DeleteTags deletes specific tag keys from the entity.
func (*Entities) GetEntities ¶
GetEntities retrieves a set of New Relic One entities by their entity guids.
func (*Entities) GetEntity ¶
GetEntity retrieve a set of New Relic One entities by their entity guids.
func (*Entities) ListTags ¶
ListTags returns a collection of tags for a given entity by entity GUID.
func (*Entities) ReplaceTags ¶
ReplaceTags replaces the entity's entire set of tags with the provided tag set.
func (*Entities) SearchEntities ¶
func (e *Entities) SearchEntities(params SearchEntitiesParams) ([]*Entity, error)
SearchEntities searches New Relic One entities based on the provided search parameters.
type Entity ¶
type Entity struct { AccountID int `json:"accountId,omitempty"` Domain EntityDomainType `json:"domain,omitempty"` EntityType EntityType `json:"entityType,omitempty"` // Full Type (ie APM_APPLICATION_ENTITY) GUID string `json:"guid,omitempty"` Name string `json:"name,omitempty"` Permalink string `json:"permalink,omitempty"` Reporting bool `json:"reporting,omitempty"` Type Type `json:"type,omitempty"` // ApmApplicationEntity, BrowserApplicationEntity AlertSeverity *EntityAlertSeverityType `json:"alertSeverity,omitempty"` ApplicationID *int `json:"applicationId,omitempty"` // Stitch in other structs ApmApplicationEntity BrowserApplicationEntity }
Entity represents a New Relic One entity.
type EntityAlertSeverityType ¶
type EntityAlertSeverityType string
EntityAlertSeverityType represents a New Relic One entity alert severity.
type EntityDomainType ¶
type EntityDomainType string
EntityDomainType represents a New Relic One entity domain.
type SearchEntitiesParams ¶ added in v0.7.1
type SearchEntitiesParams struct { AlertSeverity EntityAlertSeverityType `json:"alertSeverity,omitempty"` Domain EntityDomainType `json:"domain,omitempty"` InfrastructureIntegrationType string `json:"infrastructureIntegrationType,omitempty"` Name string `json:"name,omitempty"` Reporting *bool `json:"reporting,omitempty"` Tags *TagValue `json:"tags,omitempty"` Type EntityType `json:"type,omitempty"` }
SearchEntitiesParams represents a set of search parameters for retrieving New Relic One entities.