mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Update arc dashboards to use logs/metrics links from status (#12673)
* Update arc dashboards to use logs/metrics links from status * remove unused * Fix loading
This commit is contained in:
@@ -8,7 +8,7 @@ import * as azdataExt from 'azdata-ext';
|
|||||||
import * as azurecore from 'azurecore';
|
import * as azurecore from 'azurecore';
|
||||||
import * as vscode from 'vscode';
|
import * as vscode from 'vscode';
|
||||||
import { getDatabaseStateDisplayText, promptForInstanceDeletion } from '../../../common/utils';
|
import { getDatabaseStateDisplayText, promptForInstanceDeletion } from '../../../common/utils';
|
||||||
import { cssStyles, Endpoints, IconPathHelper, miaaTroubleshootDocsUrl } from '../../../constants';
|
import { cssStyles, IconPathHelper, miaaTroubleshootDocsUrl } from '../../../constants';
|
||||||
import * as loc from '../../../localizedConstants';
|
import * as loc from '../../../localizedConstants';
|
||||||
import { ControllerModel } from '../../../models/controllerModel';
|
import { ControllerModel } from '../../../models/controllerModel';
|
||||||
import { MiaaModel } from '../../../models/miaaModel';
|
import { MiaaModel } from '../../../models/miaaModel';
|
||||||
@@ -352,19 +352,13 @@ export class MiaaDashboardOverviewPage extends DashboardPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private refreshDashboardLinks(): void {
|
private refreshDashboardLinks(): void {
|
||||||
const kibanaEndpoint = this._controllerModel.getEndpoint(Endpoints.logsui);
|
if (this._miaaModel.config) {
|
||||||
if (kibanaEndpoint && this._miaaModel.config) {
|
const kibanaUrl = this._miaaModel.config.status.logSearchDashboard ?? '';
|
||||||
const kibanaQuery = `kubernetes_namespace:"${this._miaaModel.config.metadata.namespace}" and custom_resource_name :"${this._miaaModel.config.metadata.name}"`;
|
|
||||||
const kibanaUrl = `${kibanaEndpoint.endpoint}/app/kibana#/discover?_a=(query:(language:kuery,query:'${kibanaQuery}'))`;
|
|
||||||
this._kibanaLink.label = kibanaUrl;
|
this._kibanaLink.label = kibanaUrl;
|
||||||
this._kibanaLink.url = kibanaUrl;
|
this._kibanaLink.url = kibanaUrl;
|
||||||
this._kibanaLoading!.loading = false;
|
this._kibanaLoading!.loading = false;
|
||||||
}
|
|
||||||
|
|
||||||
const grafanaEndpoint = this._controllerModel.getEndpoint(Endpoints.metricsui);
|
const grafanaUrl = this._miaaModel.config.status.metricsDashboard ?? '';
|
||||||
if (grafanaEndpoint && this._miaaModel.config) {
|
|
||||||
const grafanaQuery = `var-hostname=${this._miaaModel.info.name}-0`;
|
|
||||||
const grafanaUrl = grafanaEndpoint ? `${grafanaEndpoint.endpoint}/d/40q72HnGk/sql-managed-instance-metrics?${grafanaQuery}` : '';
|
|
||||||
this._grafanaLink.label = grafanaUrl;
|
this._grafanaLink.label = grafanaUrl;
|
||||||
this._grafanaLink.url = grafanaUrl;
|
this._grafanaLink.url = grafanaUrl;
|
||||||
this._grafanaLoading!.loading = false;
|
this._grafanaLoading!.loading = false;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import * as vscode from 'vscode';
|
|||||||
import * as azdata from 'azdata';
|
import * as azdata from 'azdata';
|
||||||
import * as azdataExt from 'azdata-ext';
|
import * as azdataExt from 'azdata-ext';
|
||||||
import * as loc from '../../../localizedConstants';
|
import * as loc from '../../../localizedConstants';
|
||||||
import { IconPathHelper, cssStyles, Endpoints } from '../../../constants';
|
import { IconPathHelper, cssStyles } from '../../../constants';
|
||||||
import { DashboardPage } from '../../components/dashboardPage';
|
import { DashboardPage } from '../../components/dashboardPage';
|
||||||
import { ControllerModel } from '../../../models/controllerModel';
|
import { ControllerModel } from '../../../models/controllerModel';
|
||||||
import { PostgresModel } from '../../../models/postgresModel';
|
import { PostgresModel } from '../../../models/postgresModel';
|
||||||
@@ -16,13 +16,13 @@ import { ResourceType } from 'arc';
|
|||||||
|
|
||||||
export class PostgresOverviewPage extends DashboardPage {
|
export class PostgresOverviewPage extends DashboardPage {
|
||||||
|
|
||||||
private propertiesLoading?: azdata.LoadingComponent;
|
private propertiesLoading!: azdata.LoadingComponent;
|
||||||
private kibanaLoading?: azdata.LoadingComponent;
|
private kibanaLoading!: azdata.LoadingComponent;
|
||||||
private grafanaLoading?: azdata.LoadingComponent;
|
private grafanaLoading!: azdata.LoadingComponent;
|
||||||
|
|
||||||
private properties?: azdata.PropertiesContainerComponent;
|
private properties!: azdata.PropertiesContainerComponent;
|
||||||
private kibanaLink?: azdata.HyperlinkComponent;
|
private kibanaLink!: azdata.HyperlinkComponent;
|
||||||
private grafanaLink?: azdata.HyperlinkComponent;
|
private grafanaLink!: azdata.HyperlinkComponent;
|
||||||
|
|
||||||
private readonly _azdataApi: azdataExt.IExtension;
|
private readonly _azdataApi: azdataExt.IExtension;
|
||||||
|
|
||||||
@@ -31,7 +31,6 @@ export class PostgresOverviewPage extends DashboardPage {
|
|||||||
this._azdataApi = vscode.extensions.getExtension(azdataExt.extension.name)?.exports;
|
this._azdataApi = vscode.extensions.getExtension(azdataExt.extension.name)?.exports;
|
||||||
|
|
||||||
this.disposables.push(
|
this.disposables.push(
|
||||||
this._controllerModel.onEndpointsUpdated(() => this.eventuallyRunOnInitialized(() => this.handleEndpointsUpdated())),
|
|
||||||
this._controllerModel.onRegistrationsUpdated(() => this.eventuallyRunOnInitialized(() => this.handleRegistrationsUpdated())),
|
this._controllerModel.onRegistrationsUpdated(() => this.eventuallyRunOnInitialized(() => this.handleRegistrationsUpdated())),
|
||||||
this._postgresModel.onConfigUpdated(() => this.eventuallyRunOnInitialized(() => this.handleConfigUpdated())));
|
this._postgresModel.onConfigUpdated(() => this.eventuallyRunOnInitialized(() => this.handleConfigUpdated())));
|
||||||
}
|
}
|
||||||
@@ -74,29 +73,26 @@ export class PostgresOverviewPage extends DashboardPage {
|
|||||||
CSSStyles: titleCSS
|
CSSStyles: titleCSS
|
||||||
}).component());
|
}).component());
|
||||||
|
|
||||||
this.kibanaLink = this.modelView.modelBuilder.hyperlink()
|
this.kibanaLink = this.modelView.modelBuilder.hyperlink().component();
|
||||||
.withProperties<azdata.HyperlinkComponentProperties>({
|
|
||||||
label: this.getKibanaLink(),
|
|
||||||
url: this.getKibanaLink()
|
|
||||||
}).component();
|
|
||||||
|
|
||||||
this.grafanaLink = this.modelView.modelBuilder.hyperlink()
|
this.grafanaLink = this.modelView.modelBuilder.hyperlink().component();
|
||||||
.withProperties<azdata.HyperlinkComponentProperties>({
|
|
||||||
label: this.getGrafanaLink(),
|
|
||||||
url: this.getGrafanaLink()
|
|
||||||
}).component();
|
|
||||||
|
|
||||||
this.kibanaLoading = this.modelView.modelBuilder.loadingComponent()
|
this.kibanaLoading = this.modelView.modelBuilder.loadingComponent()
|
||||||
.withItem(this.kibanaLink)
|
.withProperties<azdata.LoadingComponentProperties>(
|
||||||
.withProperties<azdata.LoadingComponentProperties>({
|
{ loading: !this._postgresModel?.configLastUpdated }
|
||||||
loading: !this._controllerModel.endpointsLastUpdated
|
)
|
||||||
}).component();
|
.component();
|
||||||
|
|
||||||
this.grafanaLoading = this.modelView.modelBuilder.loadingComponent()
|
this.grafanaLoading = this.modelView.modelBuilder.loadingComponent()
|
||||||
.withItem(this.grafanaLink)
|
.withProperties<azdata.LoadingComponentProperties>(
|
||||||
.withProperties<azdata.LoadingComponentProperties>({
|
{ loading: !this._postgresModel?.configLastUpdated }
|
||||||
loading: !this._controllerModel.endpointsLastUpdated
|
)
|
||||||
}).component();
|
.component();
|
||||||
|
|
||||||
|
this.refreshDashboardLinks();
|
||||||
|
|
||||||
|
this.kibanaLoading.component = this.kibanaLink;
|
||||||
|
this.grafanaLoading.component = this.grafanaLink;
|
||||||
|
|
||||||
const endpointsTable = this.modelView.modelBuilder.declarativeTable().withProperties<azdata.DeclarativeTableProperties>({
|
const endpointsTable = this.modelView.modelBuilder.declarativeTable().withProperties<azdata.DeclarativeTableProperties>({
|
||||||
width: '100%',
|
width: '100%',
|
||||||
@@ -271,27 +267,18 @@ export class PostgresOverviewPage extends DashboardPage {
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
private getKibanaLink(): string {
|
private refreshDashboardLinks(): void {
|
||||||
const namespace = this._postgresModel.config?.metadata.namespace;
|
if (this._postgresModel.config) {
|
||||||
const kibanaQuery = `kubernetes_namespace:"${namespace}" and custom_resource_name:"${this._postgresModel.info.name}"`;
|
const kibanaUrl = this._postgresModel.config.status.logSearchDashboard ?? '';
|
||||||
return `${this._controllerModel.getEndpoint(Endpoints.logsui)?.endpoint}/app/kibana#/discover?_a=(query:(language:kuery,query:'${kibanaQuery}'))`;
|
this.kibanaLink.label = kibanaUrl;
|
||||||
|
this.kibanaLink.url = kibanaUrl;
|
||||||
|
this.kibanaLoading.loading = false;
|
||||||
|
|
||||||
}
|
const grafanaUrl = this._postgresModel.config.status.metricsDashboard ?? '';
|
||||||
|
this.grafanaLink.label = grafanaUrl;
|
||||||
private getGrafanaLink(): string {
|
this.grafanaLink.url = grafanaUrl;
|
||||||
const namespace = this._postgresModel.config?.metadata.namespace;
|
this.grafanaLoading.loading = false;
|
||||||
const grafanaQuery = `var-Namespace=${namespace}&var-Name=${this._postgresModel.info.name}`;
|
}
|
||||||
return `${this._controllerModel.getEndpoint(Endpoints.metricsui)?.endpoint}/d/postgres-metrics?${grafanaQuery}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
private handleEndpointsUpdated() {
|
|
||||||
this.kibanaLink!.label = this.getKibanaLink();
|
|
||||||
this.kibanaLink!.url = this.getKibanaLink();
|
|
||||||
this.kibanaLoading!.loading = false;
|
|
||||||
|
|
||||||
this.grafanaLink!.label = this.getGrafanaLink();
|
|
||||||
this.grafanaLink!.url = this.getGrafanaLink();
|
|
||||||
this.grafanaLoading!.loading = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private handleRegistrationsUpdated() {
|
private handleRegistrationsUpdated() {
|
||||||
@@ -302,5 +289,6 @@ export class PostgresOverviewPage extends DashboardPage {
|
|||||||
private handleConfigUpdated() {
|
private handleConfigUpdated() {
|
||||||
this.properties!.propertyItems = this.getProperties();
|
this.properties!.propertyItems = this.getProperties();
|
||||||
this.propertiesLoading!.loading = false;
|
this.propertiesLoading!.loading = false;
|
||||||
|
this.refreshDashboardLinks();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -143,7 +143,9 @@ declare module 'azdata-ext' {
|
|||||||
},
|
},
|
||||||
status: {
|
status: {
|
||||||
readyReplicas: string, // "1/1"
|
readyReplicas: string, // "1/1"
|
||||||
state: string, // "Ready"
|
state: string, // "Ready",
|
||||||
|
logSearchDashboard: string, // https://127.0.0.1:30777/kibana/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:miaa1'))
|
||||||
|
metricsDashboard: string, // https://127.0.0.1:30777/grafana/d/40q72HnGk/sql-managed-instance-metrics?var-hostname=miaa1-0
|
||||||
externalEndpoint?: string // "10.91.86.39:32718"
|
externalEndpoint?: string // "10.91.86.39:32718"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -208,7 +210,9 @@ declare module 'azdata-ext' {
|
|||||||
status: {
|
status: {
|
||||||
externalEndpoint: string, // "10.130.12.136:26630"
|
externalEndpoint: string, // "10.130.12.136:26630"
|
||||||
readyPods: string, // "1/1",
|
readyPods: string, // "1/1",
|
||||||
state: string // "Ready"
|
state: string, // "Ready"
|
||||||
|
logSearchDashboard: string, // https://127.0.0.1:30777/kibana/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:pg1'))
|
||||||
|
metricsDashboard: string, // https://127.0.0.1:30777/grafana/d/40q72HnGk/sql-managed-instance-metrics?var-hostname=pg1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user