2023-03-14 13:18:55 +00:00
|
|
|
/**
|
|
|
|
* Copyright (c) HashiCorp, Inc.
|
|
|
|
* SPDX-License-Identifier: MPL-2.0
|
|
|
|
*/
|
|
|
|
|
2020-10-09 20:31:15 +00:00
|
|
|
import Component from '@glimmer/component';
|
|
|
|
import { tracked } from '@glimmer/tracking';
|
|
|
|
import { action } from '@ember/object';
|
|
|
|
|
|
|
|
export default class TopologyMetricsStats extends Component {
|
|
|
|
@tracked stats = null;
|
|
|
|
@tracked hasLoaded = false;
|
|
|
|
|
|
|
|
@action
|
|
|
|
statsUpdate(event) {
|
|
|
|
if (this.args.endpoint == 'summary-for-service') {
|
|
|
|
// For the main service there is just one set of stats.
|
|
|
|
this.stats = event.data.stats;
|
|
|
|
} else {
|
|
|
|
// For up/downstreams we need to pull out the stats for the service we
|
|
|
|
// represent.
|
2020-11-18 19:01:35 +00:00
|
|
|
let nspace = this.args.nspace || '';
|
|
|
|
if (nspace.length === 0) {
|
|
|
|
nspace = 'default';
|
2020-11-16 23:37:19 +00:00
|
|
|
}
|
2020-11-18 19:01:35 +00:00
|
|
|
let entity = `${this.args.item}.${nspace}.${this.args.dc}`;
|
2020-11-16 23:37:19 +00:00
|
|
|
this.stats = event.data.stats[entity];
|
2020-10-09 20:31:15 +00:00
|
|
|
}
|
|
|
|
// Limit to 4 metrics for now.
|
|
|
|
this.stats = (this.stats || []).slice(0, 4);
|
|
|
|
this.hasLoaded = true;
|
|
|
|
}
|
|
|
|
}
|