Skip to content

Commit 4658773

Browse files
author
Camden Cheek
authored
Merge pull request #8 from newrelic/extra-attributes-agent
Extra attributes agent
2 parents 37db2d4 + f4f688d commit 4658773

File tree

6 files changed

+40
-18
lines changed

6 files changed

+40
-18
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](http://keepachangelog.com/)
66
and this project adheres to [Semantic Versioning](http://semver.org/).
77

8+
## 0.1.1 - 2018-11-15
9+
### Added
10+
- Datacenter and IP attributes to all Agent samples
11+
812
## 0.1.0 - 2018-11-14
913
### Added
1014
- Initial version: Includes Metrics and Inventory data

src/agent/agent.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@ const workerCount = 5
2121
// It's comprised of the client connected to that agent
2222
// and the Entity representing it.
2323
type Agent struct {
24-
entity *integration.Entity
25-
Client *api.Client
24+
entity *integration.Entity
25+
Client *api.Client
26+
datacenter string
27+
ipAddr string
2628
}
2729

2830
// CreateAgents creates an Agent structure for every Agent member of the LAN cluster
@@ -54,7 +56,7 @@ func CreateAgents(client *api.Client, i *integration.Integration, args *args.Arg
5456
continue
5557
}
5658

57-
agent := NewAgent(client, entity)
59+
agent := NewAgent(client, entity, member.Addr, member.Tags["dc"])
5860
agents = append(agents, agent)
5961

6062
// we need to identify the leader to collect catalog
@@ -69,10 +71,12 @@ func CreateAgents(client *api.Client, i *integration.Integration, args *args.Arg
6971
}
7072

7173
// NewAgent creates a new agent from the given client and Entity
72-
func NewAgent(client *api.Client, entity *integration.Entity) *Agent {
74+
func NewAgent(client *api.Client, entity *integration.Entity, ipAddr, datacenter string) *Agent {
7375
return &Agent{
74-
Client: client,
75-
entity: entity,
76+
Client: client,
77+
entity: entity,
78+
ipAddr: ipAddr,
79+
datacenter: datacenter,
7680
}
7781
}
7882

src/agent/metric_collection.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ func metricWorker(agentChan <-chan *Agent, wg *sync.WaitGroup) {
4343
metricSet := agent.entity.NewMetricSet("ConsulAgentSample",
4444
metric.Attribute{Key: "displayName", Value: agent.entity.Metadata.Name},
4545
metric.Attribute{Key: "entityName", Value: agent.entity.Metadata.Namespace + ":" + agent.entity.Metadata.Name},
46+
metric.Attribute{Key: "ip", Value: agent.ipAddr},
47+
metric.Attribute{Key: "datacenter", Value: agent.datacenter},
4648
)
4749

4850
// Collect core metrics

src/agent/metric_collection_test.go

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,10 @@ func TestCollectMetrics_CoreMetrics(t *testing.T) {
3838
}
3939

4040
agent := &Agent{
41-
Client: client,
42-
entity: entity,
41+
Client: client,
42+
entity: entity,
43+
datacenter: "MyDC",
44+
ipAddr: "192.168.0.0",
4345
}
4446

4547
agents := []*Agent{agent}
@@ -118,6 +120,8 @@ func TestCollectMetrics_CoreMetrics(t *testing.T) {
118120
"event_type": "ConsulAgentSample",
119121
"displayName": agent.entity.Metadata.Name,
120122
"entityName": agent.entity.Metadata.Namespace + ":" + agent.entity.Metadata.Name,
123+
"datacenter": agent.datacenter,
124+
"ip": agent.ipAddr,
121125
"runtime.goroutines": float64(49),
122126
"runtime.heapObjects": float64(33463),
123127
"runtime.virtualAddressSpaceInBytes": float64(14395640),
@@ -165,8 +169,10 @@ func TestCollectMetrics_PeerMetrics(t *testing.T) {
165169
}
166170

167171
agent := &Agent{
168-
Client: client,
169-
entity: entity,
172+
Client: client,
173+
entity: entity,
174+
datacenter: "MyDC",
175+
ipAddr: "192.168.0.0",
170176
}
171177

172178
agents := []*Agent{agent}
@@ -183,6 +189,8 @@ func TestCollectMetrics_PeerMetrics(t *testing.T) {
183189
"event_type": "ConsulAgentSample",
184190
"displayName": agent.entity.Metadata.Name,
185191
"entityName": agent.entity.Metadata.Namespace + ":" + agent.entity.Metadata.Name,
192+
"datacenter": agent.datacenter,
193+
"ip": agent.ipAddr,
186194
"agent.peers": float64(3),
187195
}
188196

@@ -220,8 +228,10 @@ func TestCollectMetrics_LatencyMetrics(t *testing.T) {
220228
}
221229

222230
agent := &Agent{
223-
Client: client,
224-
entity: entity,
231+
Client: client,
232+
entity: entity,
233+
datacenter: "MyDC",
234+
ipAddr: "192.168.0.0",
225235
}
226236

227237
agents := []*Agent{agent}
@@ -288,9 +298,11 @@ func TestCollectMetrics_LatencyMetrics(t *testing.T) {
288298
})
289299

290300
expected := map[string]interface{}{
291-
"displayName": "consul-0",
292-
"entityName": "agent:consul-0",
293-
"event_type": "ConsulAgentSample",
301+
"displayName": "consul-0",
302+
"entityName": "agent:consul-0",
303+
"event_type": "ConsulAgentSample",
304+
"datacenter": agent.datacenter,
305+
"ip": agent.ipAddr,
294306
"net.agent.medianLatencyInMilliseconds": 0.3303747050428994,
295307
"net.agent.minLatencyInMilliseconds": 0.28994299609053836,
296308
"net.agent.maxLatencyInMilliseconds": 0.453482732462,

src/consul.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313

1414
const (
1515
integrationName = "com.newrelic.consul"
16-
integrationVersion = "0.1.0"
16+
integrationVersion = "0.1.1"
1717
)
1818

1919
func main() {

src/datacenter/datacenter_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ func Test_Datacenter_CollectMetrics_Full(t *testing.T) {
213213

214214
c := &Datacenter{
215215
entity: dcEntity,
216-
leader: agent.NewAgent(client, agentEntity),
216+
leader: agent.NewAgent(client, agentEntity, "", ""),
217217
}
218218

219219
setMetricMuxes(mux)
@@ -274,7 +274,7 @@ func Test_Datacenter_CollectMetrics_All_Endpoint_Fails(t *testing.T) {
274274

275275
c := &Datacenter{
276276
entity: dcEntity,
277-
leader: agent.NewAgent(client, agentEntity),
277+
leader: agent.NewAgent(client, agentEntity, "", ""),
278278
}
279279

280280
expected := map[string]interface{}{

0 commit comments

Comments
 (0)