From fb5a50b58b72a0424636e7c9df02c04efba2b62c Mon Sep 17 00:00:00 2001 From: Jonathan Thurman Date: Tue, 10 Mar 2020 17:59:37 -0700 Subject: [PATCH] feat(entities): Add some more details from BrowserApplicationEntity --- pkg/entities/entity.go | 42 ++++++++++++++++++------- pkg/entities/entity_integration_test.go | 3 +- 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/pkg/entities/entity.go b/pkg/entities/entity.go index 5c9ccd46..7d8224ce 100644 --- a/pkg/entities/entity.go +++ b/pkg/entities/entity.go @@ -8,19 +8,24 @@ import ( type Entity struct { AccountID int `json:"accountId,omitempty"` Domain EntityDomainType `json:"domain,omitempty"` - EntityType EntityType `json:"entityType,omitempty"` // This does not match what EntityTypes below (is full name not short) + 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 string `json:"type,omitempty"` // TODO: Should be a type (or EntityType?) Vet what that breaks + Type EntityType `json:"type,omitempty"` - // Not always returned. Only returned from ApmApplicationEntityOutline - AlertSeverity *EntityAlertSeverityType `json:"alertSeverity,omitempty"` - ApplicationID *int `json:"applicationId,omitempty"` + // ApmApplicationEntity, BrowserApplicationEntity + AlertSeverity *EntityAlertSeverityType `json:"alertSeverity,omitempty"` + ApplicationID *int `json:"applicationId,omitempty"` + + // ApmApplicationEntity Language *string `json:"language,omitempty"` RunningAgentVersions *ApmApplicationEntityOutlineRunningAgentVersions `json:"runningAgentVersions,omitempty"` Settings *ApmApplicationEntityOutlineSettings `json:"settings,omitempty"` + + // BrowserApplicationEntity + ServingApmApplicationID *int `json:"servingApmApplicationId,omitempty"` } type ApmApplicationEntityOutlineSettings struct { @@ -192,6 +197,7 @@ const ( graphqlApmApplicationEntityOutlineFields = ` ... on ApmApplicationEntityOutline { applicationId + alertSeverity language runningAgentVersions { maxVersion @@ -203,14 +209,30 @@ const ( } }` + graphqlBrowserApplicationEntityFields = ` + ... on BrowserApplicationEntity { + alertSeverity + applicationId + servingApmApplicationId + }` + + graphqlBrowserApplicationEntityOutlineFields = ` + ... on BrowserApplicationEntityOutline { + alertSeverity + applicationId + servingApmApplicationId + }` + getEntitiesQuery = `query($guids: [String!]!) { actor { entities(guids: $guids) {` + graphqlEntityStructFields + graphqlApmApplicationEntityFields + + graphqlBrowserApplicationEntityFields + ` } } }` getEntityQuery = `query($guid: String!) { actor { entity(guid: $guid) {` + graphqlEntityStructFields + graphqlApmApplicationEntityFields + + graphqlBrowserApplicationEntityFields + ` } } }` searchEntitiesQuery = ` @@ -221,13 +243,9 @@ const ( nextCursor entities {` + graphqlEntityStructFields + - graphqlApmApplicationEntityOutlineFields + ` - } - } - } - } - } -` + graphqlApmApplicationEntityOutlineFields + + graphqlBrowserApplicationEntityOutlineFields + + ` } } } } }` ) type searchEntitiesResponse struct { diff --git a/pkg/entities/entity_integration_test.go b/pkg/entities/entity_integration_test.go index 81bdce58..7afcc586 100644 --- a/pkg/entities/entity_integration_test.go +++ b/pkg/entities/entity_integration_test.go @@ -72,12 +72,11 @@ func TestIntegrationGetEntity(t *testing.T) { assert.Equal(t, 2520528, actual.AccountID) assert.Equal(t, EntityDomainType("APM"), actual.Domain) assert.Equal(t, EntityType("APM_APPLICATION_ENTITY"), actual.EntityType) - assert.Equal(t, "APPLICATION", actual.Type) assert.Equal(t, entityGUID, actual.GUID) assert.Equal(t, "Dummy App", actual.Name) assert.Equal(t, "https://one.newrelic.com/redirect/entity/"+entityGUID, actual.Permalink) assert.Equal(t, true, actual.Reporting) - assert.Equal(t, "APPLICATION", actual.Type) + assert.Equal(t, EntityType("APPLICATION"), actual.Type) } // Looking at an APM Application, and the result set here.