mirror of https://github.com/status-im/consul.git
ui: Update to not return metrics for ingress gateways (#9081)
This commit is contained in:
parent
ae6185a554
commit
56c2ff56e4
|
@ -45,18 +45,18 @@
|
||||||
</dl>
|
</dl>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
{{#if @hasMetricsProvider }}
|
{{#if (and @hasMetricsProvider (not-eq @service.Kind 'ingress-gateway'))}}
|
||||||
{{#if (eq @type 'upstream')}}
|
{{#if (eq @type 'upstream')}}
|
||||||
<TopologyMetrics::Stats
|
<TopologyMetrics::Stats
|
||||||
@endpoint='upstream-summary-for-service'
|
@endpoint='upstream-summary-for-service'
|
||||||
@service={{@service}}
|
@service={{@service.Service}}
|
||||||
@item={{item.Name}}
|
@item={{item.Name}}
|
||||||
@noMetricsReason={{@noMetricsReason}}
|
@noMetricsReason={{@noMetricsReason}}
|
||||||
/>
|
/>
|
||||||
{{else}}
|
{{else}}
|
||||||
<TopologyMetrics::Stats
|
<TopologyMetrics::Stats
|
||||||
@endpoint='downstream-summary-for-service'
|
@endpoint='downstream-summary-for-service'
|
||||||
@service={{@service}}
|
@service={{@service.Service}}
|
||||||
@item={{item.Name}}
|
@item={{item.Name}}
|
||||||
@noMetricsReason={{@noMetricsReason}}
|
@noMetricsReason={{@noMetricsReason}}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
</div>
|
</div>
|
||||||
<TopologyMetrics::Card
|
<TopologyMetrics::Card
|
||||||
@items={{@topology.Downstreams}}
|
@items={{@topology.Downstreams}}
|
||||||
@service={{@service.Service.Service}}
|
@service={{@service.Service}}
|
||||||
@dc={{@topology.Datacenter}}
|
@dc={{@topology.Datacenter}}
|
||||||
@hasMetricsProvider={{this.hasMetricsProvider}}
|
@hasMetricsProvider={{this.hasMetricsProvider}}
|
||||||
@noMetricsReason={{this.noMetricsReason}}
|
@noMetricsReason={{this.noMetricsReason}}
|
||||||
|
@ -31,6 +31,7 @@
|
||||||
@protocol={{@topology.Protocol}}
|
@protocol={{@topology.Protocol}}
|
||||||
@noMetricsReason={{this.noMetricsReason}}
|
@noMetricsReason={{this.noMetricsReason}}
|
||||||
/>
|
/>
|
||||||
|
{{#if (not-eq @service.Service.Kind 'ingress-gateway')}}
|
||||||
<TopologyMetrics::Stats
|
<TopologyMetrics::Stats
|
||||||
@endpoint='summary-for-service'
|
@endpoint='summary-for-service'
|
||||||
@service={{@service.Service.Service}}
|
@service={{@service.Service.Service}}
|
||||||
|
@ -38,6 +39,7 @@
|
||||||
@protocol={{@topology.Protocol}}
|
@protocol={{@topology.Protocol}}
|
||||||
@noMetricsReason={{this.noMetricsReason}}
|
@noMetricsReason={{this.noMetricsReason}}
|
||||||
/>
|
/>
|
||||||
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<div class="link">
|
<div class="link">
|
||||||
{{#if @metricsHref}}
|
{{#if @metricsHref}}
|
||||||
|
@ -63,7 +65,7 @@
|
||||||
<p>{{dc}}</p>
|
<p>{{dc}}</p>
|
||||||
<TopologyMetrics::Card
|
<TopologyMetrics::Card
|
||||||
@items={{upstreams}}
|
@items={{upstreams}}
|
||||||
@service={{@service.Service.Service}}
|
@service={{@service.Service}}
|
||||||
@dc={{@topology.Datacenter}}
|
@dc={{@topology.Datacenter}}
|
||||||
@type='upstream'
|
@type='upstream'
|
||||||
@hasMetricsProvider={{this.hasMetricsProvider}}
|
@hasMetricsProvider={{this.hasMetricsProvider}}
|
||||||
|
|
|
@ -26,7 +26,10 @@ export default class TopologyMetrics extends Component {
|
||||||
// TODO we can make the configurable even before we have a full solution for
|
// TODO we can make the configurable even before we have a full solution for
|
||||||
// multi-DC forwarding for Prometheus so providers that are global for all
|
// multi-DC forwarding for Prometheus so providers that are global for all
|
||||||
// DCs like an external managed APM can still load in all DCs.
|
// DCs like an external managed APM can still load in all DCs.
|
||||||
if (this.env.var('CONSUL_DATACENTER_LOCAL') != this.args.topology.get('Datacenter')) {
|
if (
|
||||||
|
this.env.var('CONSUL_DATACENTER_LOCAL') !== this.args.topology.get('Datacenter') ||
|
||||||
|
this.args.service.Service.Kind === 'ingress-gateway'
|
||||||
|
) {
|
||||||
this.noMetricsReason = 'Unable to fetch metrics for a remote datacenter';
|
this.noMetricsReason = 'Unable to fetch metrics for a remote datacenter';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,29 +11,25 @@ export default Route.extend({
|
||||||
// so check the length here.
|
// so check the length here.
|
||||||
let to = 'topology';
|
let to = 'topology';
|
||||||
const parentModel = this.modelFor(parent);
|
const parentModel = this.modelFor(parent);
|
||||||
const hasProxy = get(parentModel, 'proxies');
|
const hasProxy = get(parentModel, 'proxies.length') !== 0;
|
||||||
const kind = get(parentModel, 'items.firstObject.Service.Kind');
|
const kind = get(parentModel, 'items.firstObject.Service.Kind');
|
||||||
|
|
||||||
if (hasProxy.length === 0) {
|
switch (kind) {
|
||||||
to = 'instances';
|
case 'ingress-gateway':
|
||||||
} else {
|
if (!get(parentModel, 'topology.Datacenter')) {
|
||||||
switch (kind) {
|
to = 'upstreams';
|
||||||
case 'ingress-gateway':
|
}
|
||||||
if (!get(parentModel, 'topology.Datacenter')) {
|
break;
|
||||||
to = 'upstreams';
|
case 'terminating-gateway':
|
||||||
}
|
to = 'services';
|
||||||
break;
|
break;
|
||||||
case 'terminating-gateway':
|
case 'mesh-gateway':
|
||||||
to = 'services';
|
to = 'instances';
|
||||||
break;
|
break;
|
||||||
case 'mesh-gateway':
|
default:
|
||||||
|
if (!hasProxy || !get(parentModel, 'topology.Datacenter')) {
|
||||||
to = 'instances';
|
to = 'instances';
|
||||||
break;
|
}
|
||||||
default:
|
|
||||||
if (!get(parentModel, 'topology.Datacenter')) {
|
|
||||||
to = 'instances';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.replaceWith(`${parent}.${to}`, parentModel);
|
this.replaceWith(`${parent}.${to}`, parentModel);
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
<TabNav @items={{
|
<TabNav @items={{
|
||||||
compact
|
compact
|
||||||
(array
|
(array
|
||||||
(if (and topology.Datacenter (gt proxies.length 0))
|
(if (and topology.Datacenter (or (gt proxies.length 0) (eq item.Service.Kind 'ingress-gateway')))
|
||||||
(hash label="Topology" href=(href-to "dc.services.show.topology") selected=(is-href "dc.services.show.topology"))
|
(hash label="Topology" href=(href-to "dc.services.show.topology") selected=(is-href "dc.services.show.topology"))
|
||||||
'')
|
'')
|
||||||
(if (eq item.Service.Kind 'terminating-gateway')
|
(if (eq item.Service.Kind 'terminating-gateway')
|
||||||
|
|
Loading…
Reference in New Issue