From 0f25f1873955c43875fa786e35571008e9714157 Mon Sep 17 00:00:00 2001 From: Ezequiel Victorero Date: Fri, 24 Nov 2023 15:10:48 -0300 Subject: [PATCH] Analytics: Refactor dashboard sharing analytics (#78612) --- .../sharing/ShareExportTab.tsx | 6 +- .../dashboard-scene/sharing/ShareLinkTab.tsx | 10 +- .../sharing/ShareSnapshotTab.tsx | 14 +- .../components/ShareModal/ShareEmbed.tsx | 12 +- .../components/ShareModal/ShareExport.tsx | 8 +- .../components/ShareModal/ShareLink.tsx | 6 +- .../ConfigPublicDashboard.tsx | 12 +- .../ConfigPublicDashboard/Configuration.tsx | 18 +- .../EmailSharingConfiguration.tsx | 17 +- .../CreatePublicDashboard.tsx | 5 +- .../SharePublicDashboard.test.tsx | 36 +- .../components/ShareModal/ShareSnapshot.tsx | 18 +- .../components/ShareModal/ViewJsonModal.tsx | 9 +- .../components/ShareModal/analytics.ts | 13 - .../dashboards/infrastructureMonitoring.json | 12896 ++++++++-------- 15 files changed, 6458 insertions(+), 6622 deletions(-) diff --git a/public/app/features/dashboard-scene/sharing/ShareExportTab.tsx b/public/app/features/dashboard-scene/sharing/ShareExportTab.tsx index 067cb6f787a..e45f1cd7b09 100644 --- a/public/app/features/dashboard-scene/sharing/ShareExportTab.tsx +++ b/public/app/features/dashboard-scene/sharing/ShareExportTab.tsx @@ -3,12 +3,11 @@ import React from 'react'; import { useAsync } from 'react-use'; import AutoSizer from 'react-virtualized-auto-sizer'; +import { reportInteraction } from '@grafana/runtime'; import { SceneComponentProps, SceneObjectBase, SceneObjectRef } from '@grafana/scenes'; import { Button, ClipboardButton, CodeEditor, Field, Modal, Switch, VerticalGroup } from '@grafana/ui'; import { t, Trans } from 'app/core/internationalization'; import { DashboardExporter } from 'app/features/dashboard/components/DashExportModal'; -import { trackDashboardSharingActionPerType } from 'app/features/dashboard/components/ShareModal/analytics'; -import { shareDashboardType } from 'app/features/dashboard/components/ShareModal/utils'; import { DashboardModel } from 'app/features/dashboard/state'; import { DashboardScene } from '../scene/DashboardScene'; @@ -72,6 +71,7 @@ export class ShareExportTab extends SceneObjectBase { public async onSaveAsFile() { const dashboardJson = await this.getExportableDashboardJson(); const dashboardJsonPretty = JSON.stringify(dashboardJson, null, 2); + const { isSharingExternally } = this.state; const blob = new Blob([dashboardJsonPretty], { type: 'application/json;charset=utf-8', @@ -83,7 +83,7 @@ export class ShareExportTab extends SceneObjectBase { title = dashboardJson.title; } saveAs(blob, `${title}-${time}.json`); - trackDashboardSharingActionPerType('save_export', shareDashboardType.export); + reportInteraction('dashboards_sharing_export_download_json_clicked', { externally: isSharingExternally }); } } diff --git a/public/app/features/dashboard-scene/sharing/ShareLinkTab.tsx b/public/app/features/dashboard-scene/sharing/ShareLinkTab.tsx index 113fc64d918..ff0a33aed4a 100644 --- a/public/app/features/dashboard-scene/sharing/ShareLinkTab.tsx +++ b/public/app/features/dashboard-scene/sharing/ShareLinkTab.tsx @@ -2,15 +2,13 @@ import React from 'react'; import { dateTime, UrlQueryMap } from '@grafana/data'; import { selectors as e2eSelectors } from '@grafana/e2e-selectors'; -import { config, locationService } from '@grafana/runtime'; +import { config, locationService, reportInteraction } from '@grafana/runtime'; import { SceneComponentProps, SceneObjectBase, SceneObjectRef, VizPanel, sceneGraph } from '@grafana/scenes'; import { TimeZone } from '@grafana/schema'; import { Alert, ClipboardButton, Field, FieldSet, Icon, Input, Switch } from '@grafana/ui'; import { t, Trans } from 'app/core/internationalization'; import { createShortLink } from 'app/core/utils/shortLinks'; import { ThemePicker } from 'app/features/dashboard/components/ShareModal/ThemePicker'; -import { trackDashboardSharingActionPerType } from 'app/features/dashboard/components/ShareModal/analytics'; -import { shareDashboardType } from 'app/features/dashboard/components/ShareModal/utils'; import { DashboardScene } from '../scene/DashboardScene'; import { getDashboardUrl } from '../utils/urlBuilders'; @@ -121,7 +119,11 @@ export class ShareLinkTab extends SceneObjectBase { }; onCopy() { - trackDashboardSharingActionPerType('copy_link', shareDashboardType.link); + reportInteraction('dashboards_sharing_link_copy_clicked', { + currentTimeRange: this.state.useLockedTime, + theme: this.state.selectedTheme, + shortenURL: this.state.useShortUrl, + }); } } diff --git a/public/app/features/dashboard-scene/sharing/ShareSnapshotTab.tsx b/public/app/features/dashboard-scene/sharing/ShareSnapshotTab.tsx index 208fdd67b34..9458e2308db 100644 --- a/public/app/features/dashboard-scene/sharing/ShareSnapshotTab.tsx +++ b/public/app/features/dashboard-scene/sharing/ShareSnapshotTab.tsx @@ -2,12 +2,10 @@ import React from 'react'; import useAsyncFn from 'react-use/lib/useAsyncFn'; import { SelectableValue } from '@grafana/data'; -import { getBackendSrv } from '@grafana/runtime'; +import { getBackendSrv, reportInteraction } from '@grafana/runtime'; import { SceneComponentProps, sceneGraph, SceneObjectBase, SceneObjectRef, VizPanel } from '@grafana/scenes'; import { Button, ClipboardButton, Field, Input, Modal, RadioButtonGroup } from '@grafana/ui'; import { t, Trans } from 'app/core/internationalization'; -import { trackDashboardSharingActionPerType } from 'app/features/dashboard/components/ShareModal/analytics'; -import { shareDashboardType } from 'app/features/dashboard/components/ShareModal/utils'; import { getDashboardSnapshotSrv, SnapshotSharingOptions } from 'app/features/dashboard/services/SnapshotSrv'; import { DashboardScene } from '../scene/DashboardScene'; @@ -124,7 +122,15 @@ export class ShareSnapshotTab extends SceneObjectBase { const results: { deleteUrl: string; url: string } = await getBackendSrv().post(SNAPSHOTS_API_ENDPOINT, cmdData); return results; } finally { - trackDashboardSharingActionPerType(external ? 'publish_snapshot' : 'local_snapshot', shareDashboardType.snapshot); + if (external) { + reportInteraction('dashboards_sharing_snapshot_publish_clicked', { + expires: cmdData.expires, + }); + } else { + reportInteraction('dashboards_sharing_snapshot_local_clicked', { + expires: cmdData.expires, + }); + } } }; } diff --git a/public/app/features/dashboard/components/ShareModal/ShareEmbed.tsx b/public/app/features/dashboard/components/ShareModal/ShareEmbed.tsx index f1989c32b8a..6c682651a84 100644 --- a/public/app/features/dashboard/components/ShareModal/ShareEmbed.tsx +++ b/public/app/features/dashboard/components/ShareModal/ShareEmbed.tsx @@ -76,7 +76,17 @@ export function ShareEmbed({ panel, dashboard, range, buildIframe = buildIframeH /> - iframeHtml}> + iframeHtml} + onClipboardCopy={() => { + reportInteraction('dashboards_sharing_embed_copy_clicked', { + currentTimeRange: useCurrentTimeRange, + theme: selectedTheme, + }); + }} + > Copy to clipboard diff --git a/public/app/features/dashboard/components/ShareModal/ShareExport.tsx b/public/app/features/dashboard/components/ShareModal/ShareExport.tsx index a33f0bd39ce..d19a45ab812 100644 --- a/public/app/features/dashboard/components/ShareModal/ShareExport.tsx +++ b/public/app/features/dashboard/components/ShareModal/ShareExport.tsx @@ -1,6 +1,7 @@ import { saveAs } from 'file-saver'; import React, { PureComponent } from 'react'; +import { reportInteraction } from '@grafana/runtime'; import { Button, Field, Modal, Switch } from '@grafana/ui'; import { appEvents } from 'app/core/core'; import { t, Trans } from 'app/core/internationalization'; @@ -8,9 +9,7 @@ import { DashboardExporter } from 'app/features/dashboard/components/DashExportM import { ShowModalReactEvent } from 'app/types/events'; import { ViewJsonModal } from './ViewJsonModal'; -import { trackDashboardSharingActionPerType } from './analytics'; import { ShareModalTabProps } from './types'; -import { shareDashboardType } from './utils'; interface Props extends ShareModalTabProps {} @@ -40,6 +39,8 @@ export class ShareExport extends PureComponent { const { dashboard } = this.props; const { shareExternally } = this.state; + reportInteraction('dashboards_sharing_export_save_json_clicked', { externally: shareExternally }); + if (shareExternally) { this.exporter.makeExportable(dashboard).then((dashboardJson) => { this.openSaveAsDialog(dashboardJson); @@ -53,6 +54,8 @@ export class ShareExport extends PureComponent { const { dashboard } = this.props; const { shareExternally } = this.state; + reportInteraction('dashboards_sharing_export_view_json_clicked', { externally: shareExternally }); + if (shareExternally) { this.exporter.makeExportable(dashboard).then((dashboardJson) => { this.openJsonModal(dashboardJson); @@ -69,7 +72,6 @@ export class ShareExport extends PureComponent { }); const time = new Date().getTime(); saveAs(blob, `${dash.title}-${time}.json`); - trackDashboardSharingActionPerType('save_export', shareDashboardType.export); }; openJsonModal = (clone: object) => { diff --git a/public/app/features/dashboard/components/ShareModal/ShareLink.tsx b/public/app/features/dashboard/components/ShareModal/ShareLink.tsx index 2ed3637c3eb..fabdf9ff02f 100644 --- a/public/app/features/dashboard/components/ShareModal/ShareLink.tsx +++ b/public/app/features/dashboard/components/ShareModal/ShareLink.tsx @@ -1,14 +1,14 @@ import React, { PureComponent } from 'react'; import { selectors as e2eSelectors } from '@grafana/e2e-selectors'; +import { reportInteraction } from '@grafana/runtime'; import { Alert, ClipboardButton, Field, FieldSet, Input, Switch, TextLink } from '@grafana/ui'; import config from 'app/core/config'; import { t, Trans } from 'app/core/internationalization'; import { ThemePicker } from './ThemePicker'; -import { trackDashboardSharingActionPerType } from './analytics'; import { ShareModalTabProps } from './types'; -import { buildImageUrl, buildShareUrl, shareDashboardType } from './utils'; +import { buildImageUrl, buildShareUrl } from './utils'; export interface Props extends ShareModalTabProps {} @@ -75,7 +75,7 @@ export class ShareLink extends PureComponent { }; onCopy() { - trackDashboardSharingActionPerType('copy_link', shareDashboardType.link, { + reportInteraction('dashboards_sharing_link_copy_clicked', { currentTimeRange: this.state.useCurrentTimeRange, theme: this.state.selectedTheme, shortenURL: this.state.useShortUrl, diff --git a/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/ConfigPublicDashboard.tsx b/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/ConfigPublicDashboard.tsx index 21d4a0b5542..5ab388eb61e 100644 --- a/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/ConfigPublicDashboard.tsx +++ b/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/ConfigPublicDashboard.tsx @@ -4,6 +4,7 @@ import { useForm } from 'react-hook-form'; import { GrafanaTheme2, TimeRange } from '@grafana/data/src'; import { selectors as e2eSelectors } from '@grafana/e2e-selectors/src'; +import { reportInteraction } from '@grafana/runtime'; import { config, featureEnabled } from '@grafana/runtime/src'; import { Button, @@ -30,7 +31,6 @@ import { contextSrv } from '../../../../../../core/services/context_srv'; import { AccessControlAction, useSelector } from '../../../../../../types'; import { useIsDesktop } from '../../../../utils/screen'; import { ShareModal } from '../../ShareModal'; -import { trackDashboardSharingActionPerType } from '../../analytics'; import { shareDashboardType } from '../../utils'; import { NoUpsertPermissionsAlert } from '../ModalAlerts/NoUpsertPermissionsAlert'; import { SaveDashboardChangesAlert } from '../ModalAlerts/SaveDashboardChangesAlert'; @@ -111,7 +111,7 @@ export function ConfigPublicDashboardBase({ }; function onCopyURL() { - trackDashboardSharingActionPerType('copy_public_url', shareDashboardType.publicDashboard); + reportInteraction('dashboards_sharing_public_copy_url_clicked'); } return ( @@ -151,10 +151,9 @@ export function ConfigPublicDashboardBase({ {...register('isPaused')} disabled={disableInputs} onChange={(e) => { - trackDashboardSharingActionPerType( - e.currentTarget.checked ? 'disable_sharing' : 'enable_sharing', - shareDashboardType.publicDashboard - ); + reportInteraction('dashboards_sharing_public_pause_clicked', { + paused: e.currentTarget.checked, + }); onChange('isPaused', e.currentTarget.checked); }} data-testid={selectors.PauseSwitch} @@ -243,6 +242,7 @@ export function ConfigPublicDashboard({ publicDashboard, unsupportedDatasources showSaveChangesAlert={hasWritePermissions && dashboard.hasUnsavedChanges()} hasTemplateVariables={hasTemplateVariables} onRevoke={() => { + reportInteraction('dashboards_sharing_public_revoke_clicked'); showModal(DeletePublicDashboardModal, { dashboardTitle: dashboard.title, onConfirm: () => onDeletePublicDashboardClick(hideModal), diff --git a/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/Configuration.tsx b/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/Configuration.tsx index 230f90d55a7..1c5ce732bdd 100644 --- a/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/Configuration.tsx +++ b/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/Configuration.tsx @@ -3,12 +3,10 @@ import { UseFormRegister } from 'react-hook-form'; import { TimeRange } from '@grafana/data/src'; import { selectors as e2eSelectors } from '@grafana/e2e-selectors/src'; +import { reportInteraction } from '@grafana/runtime'; import { FieldSet, Label, Switch, TimeRangeInput, VerticalGroup } from '@grafana/ui/src'; import { Layout } from '@grafana/ui/src/components/Layout/Layout'; -import { trackDashboardSharingActionPerType } from '../../analytics'; -import { shareDashboardType } from '../../utils'; - import { ConfigPublicDashboardForm } from './ConfigPublicDashboard'; const selectors = e2eSelectors.pages.ShareDashboardModal.PublicDashboard; @@ -39,11 +37,10 @@ export const Configuration = ({ {...register('isTimeSelectionEnabled')} data-testid={selectors.EnableTimeRangeSwitch} onChange={(e) => { - trackDashboardSharingActionPerType( - e.currentTarget.checked ? 'enable_time' : 'disable_time', - shareDashboardType.publicDashboard - ); onChange('isTimeSelectionEnabled', e.currentTarget.checked); + reportInteraction('dashboards_sharing_public_time_picker_clicked', { + enabled: e.currentTarget.checked, + }); }} /> @@ -52,11 +49,10 @@ export const Configuration = ({ { - trackDashboardSharingActionPerType( - e.currentTarget.checked ? 'enable_annotations' : 'disable_annotations', - shareDashboardType.publicDashboard - ); onChange('isAnnotationsEnabled', e.currentTarget.checked); + reportInteraction('dashboards_sharing_public_annotations_clicked', { + enabled: e.currentTarget.checked, + }); }} data-testid={selectors.EnableAnnotationsSwitch} /> diff --git a/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/EmailSharingConfiguration.tsx b/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/EmailSharingConfiguration.tsx index 5260cae46b8..ba8fbc44599 100644 --- a/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/EmailSharingConfiguration.tsx +++ b/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/ConfigPublicDashboard/EmailSharingConfiguration.tsx @@ -5,6 +5,7 @@ import { useWindowSize } from 'react-use'; import { GrafanaTheme2, SelectableValue } from '@grafana/data/src'; import { selectors as e2eSelectors } from '@grafana/e2e-selectors/src'; +import { reportInteraction } from '@grafana/runtime'; import { FieldSet } from '@grafana/ui'; import { Button, @@ -26,8 +27,6 @@ import { } from 'app/features/dashboard/api/publicDashboardApi'; import { AccessControlAction, useSelector } from 'app/types'; -import { trackDashboardSharingActionPerType } from '../../analytics'; -import { shareDashboardType } from '../../utils'; import { PublicDashboard, PublicDashboardShareType, validEmailRegex } from '../SharePublicDashboardUtils'; interface EmailSharingConfigurationForm { @@ -58,12 +57,12 @@ const EmailList = ({ const isLoading = isDeleteLoading || isReshareLoading; const onDeleteEmail = (recipientUid: string) => { - trackDashboardSharingActionPerType('delete_email', shareDashboardType.publicDashboard); + reportInteraction('dashboards_sharing_public_email_revoke_clicked'); deleteEmail({ recipientUid, dashboardUid: dashboardUid, uid: publicDashboardUid }); }; const onReshare = (recipientUid: string) => { - trackDashboardSharingActionPerType('reshare_email', shareDashboardType.publicDashboard); + reportInteraction('dashboards_sharing_public_email_resend_clicked'); reshareAccess({ recipientUid, uid: publicDashboardUid }); }; @@ -151,8 +150,7 @@ export const EmailSharingConfiguration = () => { }; const onSubmit = async (data: EmailSharingConfigurationForm) => { - //TODO: add if it's domain or not when developed. - trackDashboardSharingActionPerType('invite_email', shareDashboardType.publicDashboard); + reportInteraction('dashboards_sharing_public_email_invite_clicked'); await addEmail({ recipient: data.email, uid: publicDashboard!.uid, dashboardUid: dashboard.uid }).unwrap(); reset({ email: '', shareType: PublicDashboardShareType.EMAIL }); }; @@ -172,10 +170,9 @@ export const EmailSharingConfiguration = () => { size={width < 480 ? 'sm' : 'md'} options={options} onChange={(shareType: PublicDashboardShareType) => { - trackDashboardSharingActionPerType( - `share_type_${shareType === PublicDashboardShareType.EMAIL ? 'email' : 'public'}`, - shareDashboardType.publicDashboard - ); + reportInteraction('dashboards_sharing_public_can_view_clicked', { + shareType: shareType === PublicDashboardShareType.EMAIL ? 'email' : 'public', + }); setValue('shareType', shareType); onUpdateShareType(shareType); }} diff --git a/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/CreatePublicDashboard/CreatePublicDashboard.tsx b/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/CreatePublicDashboard/CreatePublicDashboard.tsx index f2e0c21f8dc..1b920ba43ba 100644 --- a/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/CreatePublicDashboard/CreatePublicDashboard.tsx +++ b/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/CreatePublicDashboard/CreatePublicDashboard.tsx @@ -4,6 +4,7 @@ import { FormState, UseFormRegister } from 'react-hook-form'; import { GrafanaTheme2 } from '@grafana/data/src'; import { selectors as e2eSelectors } from '@grafana/e2e-selectors/src'; +import { reportInteraction } from '@grafana/runtime'; import { Button, Form, Spinner, useStyles2 } from '@grafana/ui/src'; import { useCreatePublicDashboardMutation } from 'app/features/dashboard/api/publicDashboardApi'; import { DashboardModel } from 'app/features/dashboard/state'; @@ -11,8 +12,6 @@ import { DashboardScene } from 'app/features/dashboard-scene/scene/DashboardScen import { contextSrv } from '../../../../../../core/services/context_srv'; import { AccessControlAction, useSelector } from '../../../../../../types'; -import { trackDashboardSharingActionPerType } from '../../analytics'; -import { shareDashboardType } from '../../utils'; import { NoUpsertPermissionsAlert } from '../ModalAlerts/NoUpsertPermissionsAlert'; import { UnsupportedDataSourcesAlert } from '../ModalAlerts/UnsupportedDataSourcesAlert'; import { UnsupportedTemplateVariablesAlert } from '../ModalAlerts/UnsupportedTemplateVariablesAlert'; @@ -47,7 +46,7 @@ export const CreatePublicDashboardBase = ({ const [createPublicDashboard, { isLoading, isError }] = useCreatePublicDashboardMutation(); const onCreate = () => { createPublicDashboard({ dashboard, payload: { isEnabled: true } }); - trackDashboardSharingActionPerType('generate_public_url', shareDashboardType.publicDashboard); + reportInteraction('dashboards_sharing_public_generate_url_clicked', {}); }; const disableInputs = !hasWritePermissions || isLoading || isError || hasError; diff --git a/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/SharePublicDashboard.test.tsx b/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/SharePublicDashboard.test.tsx index c0eabd94287..7467d6936dc 100644 --- a/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/SharePublicDashboard.test.tsx +++ b/public/app/features/dashboard/components/ShareModal/SharePublicDashboard/SharePublicDashboard.test.tsx @@ -6,7 +6,7 @@ import { setupServer } from 'msw/node'; import 'whatwg-fetch'; import { BootData, DataQuery } from '@grafana/data/src'; import { selectors as e2eSelectors } from '@grafana/e2e-selectors/src'; -import { setEchoSrv } from '@grafana/runtime'; +import { reportInteraction, setEchoSrv } from '@grafana/runtime'; import { Panel } from '@grafana/schema'; import config from 'app/core/config'; import { backendSrv } from 'app/core/services/backend_srv'; @@ -14,7 +14,7 @@ import { contextSrv } from 'app/core/services/context_srv'; import { Echo } from 'app/core/services/echo/Echo'; import { createDashboardModelFixture } from 'app/features/dashboard/state/__fixtures__/dashboardFixtures'; -import { trackDashboardSharingTypeOpen, trackDashboardSharingActionPerType } from '../analytics'; +import { trackDashboardSharingTypeOpen } from '../analytics'; import { shareDashboardType } from '../utils'; import * as sharePublicDashboardUtils from './SharePublicDashboardUtils'; @@ -30,12 +30,12 @@ const server = setupServer(); jest.mock('@grafana/runtime', () => ({ ...jest.requireActual('@grafana/runtime'), getBackendSrv: () => backendSrv, + reportInteraction: jest.fn(), })); jest.mock('../analytics', () => ({ ...jest.requireActual('../analytics'), trackDashboardSharingTypeOpen: jest.fn(), - trackDashboardSharingActionPerType: jest.fn(), })); const selectors = e2eSelectors.pages.ShareDashboardModal.PublicDashboard; @@ -360,12 +360,10 @@ describe('SharePublic - Report interactions', () => { await userEvent.click(screen.getByTestId(selectors.EnableTimeRangeSwitch)); await waitFor(() => { - expect(trackDashboardSharingActionPerType).toHaveBeenCalledTimes(1); - // if time range was enabled, then the item is now disable_time - expect(trackDashboardSharingActionPerType).toHaveBeenLastCalledWith( - pubdashResponse.timeSelectionEnabled ? 'disable_time' : 'enable_time', - shareDashboardType.publicDashboard - ); + expect(reportInteraction).toHaveBeenCalledTimes(1); + expect(reportInteraction).toHaveBeenLastCalledWith('dashboards_sharing_public_time_picker_clicked', { + enabled: !pubdashResponse.timeSelectionEnabled, + }); }); }); @@ -379,12 +377,10 @@ describe('SharePublic - Report interactions', () => { await userEvent.click(screen.getByTestId(selectors.EnableAnnotationsSwitch)); await waitFor(() => { - expect(trackDashboardSharingActionPerType).toHaveBeenCalledTimes(1); - // if annotations was enabled, then the item is now disable_annotations - expect(trackDashboardSharingActionPerType).toHaveBeenCalledWith( - pubdashResponse.annotationsEnabled ? 'disable_annotations' : 'enable_annotations', - shareDashboardType.publicDashboard - ); + expect(reportInteraction).toHaveBeenCalledTimes(1); + expect(reportInteraction).toHaveBeenLastCalledWith('dashboards_sharing_public_annotations_clicked', { + enabled: !pubdashResponse.annotationsEnabled, + }); }); }); it('reports interaction when pause is clicked', async () => { @@ -395,12 +391,10 @@ describe('SharePublic - Report interactions', () => { await userEvent.click(screen.getByTestId(selectors.PauseSwitch)); await waitFor(() => { - expect(trackDashboardSharingActionPerType).toHaveBeenCalledTimes(1); - // if sharing was enabled, then the item is now disable_sharing - expect(trackDashboardSharingActionPerType).toHaveBeenLastCalledWith( - pubdashResponse.isEnabled ? 'disable_sharing' : 'enable_sharing', - shareDashboardType.publicDashboard - ); + expect(reportInteraction).toHaveBeenCalledTimes(1); + expect(reportInteraction).toHaveBeenLastCalledWith('dashboards_sharing_public_pause_clicked', { + paused: pubdashResponse.isEnabled, + }); }); }); }); diff --git a/public/app/features/dashboard/components/ShareModal/ShareSnapshot.tsx b/public/app/features/dashboard/components/ShareModal/ShareSnapshot.tsx index 3b9f0bbf74a..6d8e59b2d50 100644 --- a/public/app/features/dashboard/components/ShareModal/ShareSnapshot.tsx +++ b/public/app/features/dashboard/components/ShareModal/ShareSnapshot.tsx @@ -1,7 +1,7 @@ import React, { PureComponent } from 'react'; import { isEmptyObject, SelectableValue } from '@grafana/data'; -import { getBackendSrv } from '@grafana/runtime'; +import { getBackendSrv, reportInteraction } from '@grafana/runtime'; import { Button, ClipboardButton, Field, Input, LinkButton, Modal, Select, Spinner } from '@grafana/ui'; import { t, Trans } from 'app/core/internationalization'; import { getTimeSrv } from 'app/features/dashboard/services/TimeSrv'; @@ -10,9 +10,7 @@ import { DashboardModel, PanelModel } from 'app/features/dashboard/state'; import { VariableRefresh } from '../../../variables/types'; import { getDashboardSnapshotSrv } from '../../services/SnapshotSrv'; -import { trackDashboardSharingActionPerType } from './analytics'; import { ShareModalTabProps } from './types'; -import { shareDashboardType } from './utils'; const snapshotApiUrl = '/api/snapshots'; @@ -97,7 +95,7 @@ export class ShareSnapshot extends PureComponent { }; saveSnapshot = async (dashboard: DashboardModel, external?: boolean) => { - const { snapshotExpires } = this.state; + const { snapshotExpires, timeoutSeconds } = this.state; const dash = this.dashboard.getSaveModelCloneOld(); this.scrubDashboard(dash); @@ -117,7 +115,17 @@ export class ShareSnapshot extends PureComponent { step: 2, }); } finally { - trackDashboardSharingActionPerType(external ? 'publish_snapshot' : 'local_snapshot', shareDashboardType.snapshot); + if (external) { + reportInteraction('dashboards_sharing_snapshot_publish_clicked', { + expires: snapshotExpires, + timeout: timeoutSeconds, + }); + } else { + reportInteraction('dashboards_sharing_snapshot_local_clicked', { + expires: snapshotExpires, + timeout: timeoutSeconds, + }); + } this.setState({ isLoading: false }); } }; diff --git a/public/app/features/dashboard/components/ShareModal/ViewJsonModal.tsx b/public/app/features/dashboard/components/ShareModal/ViewJsonModal.tsx index 2a5fa2a262e..91e72551e51 100644 --- a/public/app/features/dashboard/components/ShareModal/ViewJsonModal.tsx +++ b/public/app/features/dashboard/components/ShareModal/ViewJsonModal.tsx @@ -1,6 +1,7 @@ import React, { useCallback } from 'react'; import AutoSizer from 'react-virtualized-auto-sizer'; +import { reportInteraction } from '@grafana/runtime'; import { ClipboardButton, CodeEditor, Modal } from '@grafana/ui'; import { Trans } from 'app/core/internationalization'; @@ -17,7 +18,13 @@ export function ViewJsonModal({ json, onDismiss }: ViewJsonModalProps): JSX.Elem {({ width }) => } - + { + reportInteraction('dashboards_sharing_export_copy_json_clicked'); + }} + > Copy to Clipboard diff --git a/public/app/features/dashboard/components/ShareModal/analytics.ts b/public/app/features/dashboard/components/ShareModal/analytics.ts index 3e84825a784..636b1881321 100644 --- a/public/app/features/dashboard/components/ShareModal/analytics.ts +++ b/public/app/features/dashboard/components/ShareModal/analytics.ts @@ -4,21 +4,8 @@ export const shareAnalyticsEventNames: { [key: string]: string; } = { sharingCategoryClicked: 'dashboards_sharing_category_clicked', - sharingActionClicked: 'dashboards_sharing_actions_clicked', }; export function trackDashboardSharingTypeOpen(sharingType: string) { reportInteraction(shareAnalyticsEventNames.sharingCategoryClicked, { item: sharingType }); } - -export function trackDashboardSharingActionPerType( - action: string, - sharingType: string, - options?: Record -) { - reportInteraction(shareAnalyticsEventNames.sharingActionClicked, { - item: action, - sharing_category: sharingType, - ...options, - }); -} diff --git a/public/app/plugins/datasource/azuremonitor/dashboards/infrastructureMonitoring.json b/public/app/plugins/datasource/azuremonitor/dashboards/infrastructureMonitoring.json index de033d6a6e1..25c538cf9ad 100644 --- a/public/app/plugins/datasource/azuremonitor/dashboards/infrastructureMonitoring.json +++ b/public/app/plugins/datasource/azuremonitor/dashboards/infrastructureMonitoring.json @@ -1,6556 +1,6384 @@ { - "__inputs": [], - "__elements": {}, - "__requires": [ - { - "type": "panel", - "id": "bargauge", - "name": "Bar gauge", - "version": "" + "__inputs": [], + "__elements": {}, + "__requires": [ + { + "type": "panel", + "id": "bargauge", + "name": "Bar gauge", + "version": "" + }, + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "9.5.13" + }, + { + "type": "datasource", + "id": "grafana-azure-monitor-datasource", + "name": "Azure Monitor", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "stat", + "name": "Stat", + "version": "" + }, + { + "type": "panel", + "id": "text", + "name": "Text", + "version": "" + } + ], + "description": "This dashboard displays traffic-light indicators to show the health of your Azure infrastructure resources based on key performance indicators and thresholds defined for each infrastructure resource type.", + "editable": true, + "id": null, + "links": [], + "liveNow": true, + "panels": [ + { + "gridPos": { + "h": 3, + "w": 11, + "x": 0, + "y": 0 }, - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "9.5.13" - }, - { - "type": "datasource", - "id": "grafana-azure-monitor-datasource", - "name": "Azure Monitor", - "version": "1.0.0" - }, - { - "type": "panel", - "id": "stat", - "name": "Stat", - "version": "" - }, - { - "type": "panel", - "id": "text", - "name": "Text", - "version": "" - } - ], - "description": "This dashboard displays traffic-light indicators to show the health of your Azure infrastructure resources based on key performance indicators and thresholds defined for each infrastructure resource type.", - "editable": true, - "id": null, - "links": [], - "liveNow": true, - "panels": [ - { - "gridPos": { - "h": 3, - "w": 11, - "x": 0, - "y": 0 + "id": 1, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false }, - "id": 1, - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false + "content": "

Azure Infrastructure - Monitoring Dashboard

", + "mode": "markdown" + }, + "transparent": true, + "type": "text" + }, + { + "gridPos": { + "h": 3, + "w": 13, + "x": 11, + "y": 0 + }, + "id": 90, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "#### Welcome to the Azure Infrastructure Monitoring Dashboard! Select a data source and subscription to see the current status of your infrastructure resources. Examine the key performance indicators for your resources by expanding the row for a resource type.", + "mode": "markdown" + }, + "transparent": true, + "type": "text" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - "content": "

Azure Infrastructure - Monitoring Dashboard

", - "mode": "markdown" - }, - "transparent": true, - "type": "text" - }, - { - "gridPos": { - "h": 3, - "w": 13, - "x": 11, - "y": 0 - }, - "id": 90, - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": "#### Welcome to the Azure Infrastructure Monitoring Dashboard! Select a data source and subscription to see the current status of your infrastructure resources. Examine the key performance indicators for your resources by expanding the row for a resource type.", - "mode": "markdown" - }, - "transparent": true, - "type": "text" - }, - { - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "links": [], - "mappings": [ - { - "options": { - "0": { - "index": 0, - "text": "Healthy" - }, - "1": { - "index": 1, - "text": "Warning" - } + "links": [], + "mappings": [ + { + "options": { + "0": { + "index": 0, + "text": "Healthy" }, - "type": "value" + "1": { + "index": 1, + "text": "Warning" + } + }, + "type": "value" + }, + { + "options": { + "from": 2, + "result": { + "index": 2, + "text": "Unhealthy" + }, + "to": 4 + }, + "type": "range" + } + ], + "max": 4, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080", + "value": null }, { - "options": { - "from": 2, - "result": { - "index": 2, - "text": "Unhealthy" - }, - "to": 4 - }, - "type": "range" + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-yellow", + "value": 1 + }, + { + "color": "dark-red", + "value": 2 } - ], - "max": 4, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080", - "value": null - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-yellow", - "value": 1 - }, - { - "color": "dark-red", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 0, - "y": 3 - }, - "id": 2, - "links": [], - "options": { - "colorMode": "background_solid", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "max" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "targets": [ - { - "azureLogAnalytics": { - "query": "let insight_table = InsightsMetrics\r\n| where _ResourceId has '/microsoft.compute/virtualmachines/'\r\n| where Origin == \"vm.azm.ms\"\r\n| where Namespace == \"Processor\" and Name == \"UtilizationPercentage\"\r\n| extend Resource = toupper(tostring(split(_ResourceId,'/')[8]));\r\nAzureMetrics\r\n| where _ResourceId has '/microsoft.compute/virtualmachines/'\r\n| where MetricName in('Percentage CPU', 'Available Memory Bytes', 'VmAvailabilityMetric')\r\n| union kind=outer insight_table\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'Percentage CPU'),\r\n kpi2 = percentile(Val, 95),\r\n kpi3 = avgif(Average/1000000000, MetricName == 'Available Memory Bytes'),\r\n kpi4 = avgif(Average*100, MetricName == 'VmAvailabilityMetric') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3) \r\n|extend kpi4 = iff(isnan(kpi4), 0.0, kpi4) \r\n|extend health1 = iff(kpi1>80, 1, 0)\r\n|extend health2 = iff(kpi2>85, 1, 0)\r\n|extend health3 = iff(kpi3<1, 1, 0)\r\n|extend health4 = iff(kpi4<90, 1, 0)\r\n|extend health = health1 + health2 + health3 + health4", - "resources": [ - "/subscriptions/$sub" - ] - }, - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "queryType": "Azure Log Analytics", - "refId": "A", - "subscriptions": [ - "ebb79bc0-aa86-44a7-8111-cabbe0c43993" ] } - ], - "title": "Virtual Machines", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "A": false, - "Resource": true, - "_ResourceId": true, - "health1": true, - "health2": true, - "health3": true, - "health4": true, - "kpi1": true, - "kpi2": true, - "kpi3": true, - "kpi4": true - }, - "indexByName": {}, - "renameByName": { - "A": " ", - "health": " " - } - } - } - ], - "transparent": true, - "type": "stat" + }, + "overrides": [] }, - { - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "links": [], - "mappings": [ - { - "options": { - "0": { - "index": 0, - "text": "Healthy" - }, - "1": { - "index": 1, - "text": "Warning" - } - }, - "type": "value" - }, - { - "options": { - "from": 2, - "result": { - "index": 2, - "text": "Unhealthy" - }, - "to": 4 - }, - "type": "range" - } - ], - "max": 4, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080", - "value": null - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-yellow", - "value": 1 - }, - { - "color": "dark-red", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 3, - "y": 3 - }, - "id": 27, - "links": [], - "options": { - "colorMode": "background_solid", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "max" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "targets": [ - { - "azureLogAnalytics": { - "query": "let stroage_table = StorageBlobLogs \r\n | where StatusText != 'Success'\r\n | extend ErrorCounter = 1\r\n | extend ResourceName = AccountName\r\n | extend _ResourceId = trim('/blobservices/default', _ResourceId)\r\n | extend _ResourceId = trim('/queueservices/default', _ResourceId)\r\n | extend _ResourceId = trim('/tableservices/default', _ResourceId)\r\n | extend _ResourceId = trim('/fileservices/default', _ResourceId)\r\n | project TimeGenerated, ResourceName, StatusText, ErrorCounter, _ResourceId;\r\nAzureMetrics\r\n| where _ResourceId has '/microsoft.storage/'\r\n| where MetricName in('SuccessE2ELatency', 'UsedCapacity', 'Availability')\r\n| extend ResourceName = tostring(split(_ResourceId,'/')[8])\r\n| extend _ResourceId = trim('/blobservices/default', _ResourceId)\r\n| extend _ResourceId = trim('/queueservices/default', _ResourceId)\r\n| extend _ResourceId = trim('/tableservices/default', _ResourceId)\r\n| extend _ResourceId = trim('/fileservices/default', _ResourceId)\r\n| project ResourceName, _ResourceId, MetricName, Average, Total\r\n| union kind=outer stroage_table\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'SuccessE2ELatency'),\r\n kpi2 = sumif(ErrorCounter, isnotnull(ErrorCounter)),\r\n kpi3 = avgif(Average, MetricName == 'UsedCapacity'),\r\n kpi4 = avgif(Average, MetricName == 'Availability') by _ResourceId, ResourceName\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(toreal(kpi2)), 0.0, toreal(kpi2)) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3) \r\n|extend kpi4 = iff(isnan(kpi4), 0.0, kpi4) \r\n|extend health1 = iff(kpi1>5000, 1, 0)\r\n|extend health2 = iff(kpi2>500, 1, 0)\r\n|extend health3 = iff(kpi3>4000000000000000, 1, 0)\r\n|extend health4 = iff(kpi4<90, 1, 0)\r\n|extend health = health1 + health2 + health3 + health4", - "resources": [ - "/subscriptions/$sub" - ] - }, - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "queryType": "Azure Log Analytics", - "refId": "A", - "subscriptions": [ - "ebb79bc0-aa86-44a7-8111-cabbe0c43993" - ] - } - ], - "title": "Storage", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "A": false, - "Resource": true, - "ResourceName": true, - "_ResourceId": true, - "health1": true, - "health2": true, - "health3": true, - "health4": true, - "kpi1": true, - "kpi2": true, - "kpi3": true, - "kpi4": true - }, - "indexByName": {}, - "renameByName": { - "A": " ", - "health": " " - } - } - } - ], - "transparent": true, - "type": "stat" + "gridPos": { + "h": 3, + "w": 3, + "x": 0, + "y": 3 }, - { - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" + "id": 2, + "links": [], + "options": { + "colorMode": "background_solid", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["max"], + "fields": "", + "values": false }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "links": [], - "mappings": [ - { - "options": { - "0": { - "index": 0, - "text": "Healthy" - }, - "1": { - "index": 1, - "text": "Warning" - } - }, - "type": "value" - }, - { - "options": { - "from": 2, - "result": { - "index": 2, - "text": "Unhealthy" - }, - "to": 3 - }, - "type": "range" - } - ], - "max": 3, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080", - "value": null - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-yellow", - "value": 1 - }, - { - "color": "dark-red", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 6, - "y": 3 - }, - "id": 36, - "links": [], - "options": { - "colorMode": "background_solid", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "max" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "targets": [ - { - "azureLogAnalytics": { - "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.network/loadbalancers/'\r\n| where MetricName in('UsedSnatPorts', 'DipAvailability', 'VipAvailability')\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'UsedSnatPorts'),\r\n kpi2 = avgif(Average, MetricName == 'DipAvailability'),\r\n kpi3 = avgif(Average, MetricName == 'VipAvailability') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3) \r\n|extend health1 = iff(kpi1>900, 1, 0)\r\n|extend health2 = iff(kpi2<=50, 1, 0)\r\n|extend health3 = iff(kpi3<50, 1, 0)\r\n|extend health = health1 + health2 + health3", - "resources": [ - "/subscriptions/$sub" - ] - }, - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "queryType": "Azure Log Analytics", - "refId": "A", - "subscriptions": [ - "ebb79bc0-aa86-44a7-8111-cabbe0c43993" - ] - } - ], - "title": "Load Balancers", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "A": false, - "Resource": true, - "_ResourceId": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": { - "A": " ", - "health": " " - } - } - } - ], - "transparent": true, - "type": "stat" + "textMode": "auto" }, - { - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "links": [], - "mappings": [ - { - "options": { - "0": { - "index": 0, - "text": "Healthy" - }, - "1": { - "index": 1, - "text": "Warning" - } - }, - "type": "value" - }, - { - "options": { - "from": 2, - "result": { - "index": 2, - "text": "Unhealthy" - }, - "to": 3 - }, - "type": "range" - } - ], - "max": 3, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080", - "value": null - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-yellow", - "value": 1 - }, - { - "color": "dark-red", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 9, - "y": 3 - }, - "id": 41, - "links": [], - "options": { - "colorMode": "background_solid", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "max" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "targets": [ - { - "azureLogAnalytics": { - "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.network/applicationgateways/'\r\n| where MetricName in('UnhealthyHostCount', 'FailedRequests', 'HealthyHostCount')\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'UnhealthyHostCount'),\r\n kpi2 = sumif(Total, MetricName == 'FailedRequests'),\r\n kpi3 = avgif(Average, MetricName == 'HealthyHostCount') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3) \r\n|extend health1 = iff(kpi1>=1, 1, 0)\r\n|extend health2 = iff(kpi2>10, 1, 0)\r\n|extend health3 = iff(kpi3<=0, 1, 0)\r\n|extend health = health1 + health2 + health3", - "resources": [ - "/subscriptions/$sub" - ] - }, - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "queryType": "Azure Log Analytics", - "refId": "A", - "subscriptions": [ - "ebb79bc0-aa86-44a7-8111-cabbe0c43993" - ] - } - ], - "title": "Application Gateways", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "A": false, - "Resource": true, - "_ResourceId": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": { - "A": " ", - "health": " " - } - } - } - ], - "transparent": true, - "type": "stat" - }, - { - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "links": [], - "mappings": [ - { - "options": { - "0": { - "index": 0, - "text": "Healthy" - }, - "1": { - "index": 1, - "text": "Warning" - } - }, - "type": "value" - }, - { - "options": { - "from": 2, - "result": { - "index": 2, - "text": "Unhealthy" - }, - "to": 3 - }, - "type": "range" - } - ], - "max": 3, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080", - "value": null - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-yellow", - "value": 1 - }, - { - "color": "dark-red", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 12, - "y": 3 - }, - "id": 50, - "links": [], - "options": { - "colorMode": "background_solid", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "max" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "targets": [ - { - "azureLogAnalytics": { - "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.network/publicipaddresses/'\r\n| where MetricName in('VipAvailability', 'IfUnderDDoSAttack', 'PacketsInDDoS')\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'VipAvailability'),\r\n kpi2 = avgif(Maximum, MetricName == 'IfUnderDDoSAttack'),\r\n kpi3 = avgif(Total, MetricName == 'PacketsInDDoS') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2)\r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3)\r\n|extend health1 = iff(kpi1<100, 1, 0)\r\n|extend health2 = iff(kpi2>0, 1, 0)\r\n|extend health3 = iff(kpi3>=1000, 1, 0)\r\n|extend health = health1 + health2 + health3", - "resources": [ - "/subscriptions/$sub" - ] - }, - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "queryType": "Azure Log Analytics", - "refId": "A", - "subscriptions": [ - "ebb79bc0-aa86-44a7-8111-cabbe0c43993" - ] - } - ], - "title": "Public IPs", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "A": false, - "Resource": true, - "_ResourceId": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": { - "A": " ", - "health": " " - } - } - } - ], - "transparent": true, - "type": "stat" - }, - { - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "links": [], - "mappings": [ - { - "options": { - "0": { - "index": 0, - "text": "Healthy" - }, - "1": { - "index": 1, - "text": "Warning" - } - }, - "type": "value" - }, - { - "options": { - "from": 2, - "result": { - "index": 2, - "text": "Unhealthy" - }, - "to": 3 - }, - "type": "range" - } - ], - "max": 3, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080", - "value": null - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-yellow", - "value": 1 - }, - { - "color": "dark-red", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 15, - "y": 3 - }, - "id": 54, - "links": [], - "options": { - "colorMode": "background_solid", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "max" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "targets": [ - { - "azureLogAnalytics": { - "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.network/virtualnetworks/'\r\n| where MetricName in('IfUnderDDoSAttack', 'PacketsInDDoS', 'PacketsForwardedDDoS')\r\n| summarize\r\n kpi1 = avgif(Maximum, MetricName == 'IfUnderDDoSAttack'),\r\n kpi2 = avgif(Maximum, MetricName == 'PacketsInDDoS'),\r\n kpi3 = avgif(Maximum, MetricName == 'PacketsForwardedDDoS') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3)\r\n|extend health1 = iff(kpi1>0, 1, 0)\r\n|extend health2 = iff(kpi2>=1000, 1, 0)\r\n|extend health3 = iff(kpi3>1, 1, 0)\r\n|extend health = health1 + health2 + health3", - "resources": [ - "/subscriptions/$sub" - ] - }, - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "queryType": "Azure Log Analytics", - "refId": "A", - "subscriptions": [ - "ebb79bc0-aa86-44a7-8111-cabbe0c43993" - ] - } - ], - "title": "Virtual Networks", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "A": false, - "Resource": true, - "_ResourceId": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": { - "A": " ", - "health": " " - } - } - } - ], - "transparent": true, - "type": "stat" - }, - { - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "links": [], - "mappings": [ - { - "options": { - "0": { - "index": 0, - "text": "Healthy" - }, - "1": { - "index": 1, - "text": "Warning" - } - }, - "type": "value" - }, - { - "options": { - "from": 2, - "result": { - "index": 2, - "text": "Unhealthy" - }, - "to": 3 - }, - "type": "range" - } - ], - "max": 3, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080", - "value": null - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-yellow", - "value": 1 - }, - { - "color": "dark-red", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 18, - "y": 3 - }, - "id": 68, - "links": [], - "options": { - "colorMode": "background_solid", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "max" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "targets": [ - { - "azureLogAnalytics": { - "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.network/expressroutecircuits/'\r\n| where MetricName in('BgpAvailability', 'ArpAvailability', 'QosDropBitsInPerSecond', 'QosDropBitsOutPerSecond' )\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'BgpAvailability'),\r\n kpi2 = avgif(Average, MetricName == 'ArpAvailability'),\r\n kpi3 = avgif(Average, MetricName == 'QosDropBitsInPerSecond'),\r\n kpi4 = avgif(Total, MetricName == 'QosDropBitsOutPerSecond') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3) \r\n|extend kpi4 = iff(isnan(kpi4), 0.0, kpi4)\r\n|extend health1 = iff(kpi1<90, 1, 0)\r\n|extend health2 = iff(kpi1<90, 1, 0)\r\n|extend health3 = iff(kpi2>100, 1, 0)\r\n|extend health4 = iff(kpi3>100, 1, 0)\r\n|extend health = health1 + health2 + health3 + health4\r\n", - "resources": [ - "/subscriptions/$sub" - ] - }, - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "queryType": "Azure Log Analytics", - "refId": "A", - "subscriptions": [ - "ebb79bc0-aa86-44a7-8111-cabbe0c43993" - ] - } - ], - "title": "ExpressRoute Circuits", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "A": false, - "Resource": true, - "_ResourceId": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": true, - "kpi4": true - }, - "indexByName": {}, - "renameByName": { - "A": " ", - "health": " " - } - } - } - ], - "transparent": true, - "type": "stat" - }, - { - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "links": [], - "mappings": [ - { - "options": { - "0": { - "index": 0, - "text": "Healthy" - }, - "1": { - "index": 1, - "text": "Warning" - } - }, - "type": "value" - }, - { - "options": { - "from": 2, - "result": { - "index": 2, - "text": "Unhealthy" - }, - "to": 4 - }, - "type": "range" - } - ], - "max": 4, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080", - "value": null - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-yellow", - "value": 1 - }, - { - "color": "dark-red", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 0, - "y": 6 - }, - "id": 26, - "links": [], - "options": { - "colorMode": "background_solid", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "max" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "targets": [ - { - "azureLogAnalytics": { - "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.compute/virtualmachinescalesets/'\r\n| where MetricName in('Percentage CPU', 'OS Disk IOPS Consumed Percentage','Available Memory Bytes', 'VmAvailabilityMetric')\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'Percentage CPU'),\r\n kpi2 = avgif(Average, MetricName == 'OS Disk IOPS Consumed Percentage'),\r\n kpi3 = avgif(Average/1000000000, MetricName == 'Available Memory Bytes'),\r\n kpi4 = avgif(Average*100, MetricName == 'VmAvailabilityMetric') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3) \r\n|extend kpi4 = iff(isnan(kpi4), 0.0, kpi4)\r\n|extend health1 = iff(kpi1>80, 1, 0)\r\n|extend health2 = iff(kpi2>95, 1, 0)\r\n|extend health3 = iff(kpi3<1, 1, 0)\r\n|extend health4 = iff(kpi4<90, 1, 0)\r\n|extend health = health1 + health2 + health3 + health4", - "resources": [ - "/subscriptions/$sub" - ] - }, - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "queryType": "Azure Log Analytics", - "refId": "A", - "subscriptions": [ - "ebb79bc0-aa86-44a7-8111-cabbe0c43993" - ] - } - ], - "title": "Virtual Machine Scale Sets", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "A": false, - "Resource": true, - "_ResourceId": true, - "health1": true, - "health2": true, - "health3": true, - "health4": true, - "kpi1": true, - "kpi2": true, - "kpi3": true, - "kpi4": true - }, - "indexByName": {}, - "renameByName": { - "A": " ", - "health": " " - } - } - } - ], - "transparent": true, - "type": "stat" - }, - { - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "links": [], - "mappings": [ - { - "options": { - "0": { - "index": 0, - "text": "Healthy" - }, - "1": { - "index": 1, - "text": "Warning" - } - }, - "type": "value" - }, - { - "options": { - "from": 2, - "result": { - "index": 2, - "text": "Unhealthy" - }, - "to": 3 - }, - "type": "range" - } - ], - "max": 3, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080", - "value": null - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-yellow", - "value": 1 - }, - { - "color": "dark-red", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 3, - "y": 6 - }, - "id": 28, - "links": [], - "options": { - "colorMode": "background_solid", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "max" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "targets": [ - { - "azureLogAnalytics": { - "query": "let diagnostic_table = AzureDiagnostics \r\n | where _ResourceId has '/microsoft.keyvault/vaults/'\r\n | where ResultSignature !='OK'\r\n | extend ErrorCounter = 1\r\n | project TimeGenerated, Resource, ErrorCounter, _ResourceId;\r\nAzureMetrics\r\n| where _ResourceId has '/microsoft.keyvault/vaults/'\r\n| where MetricName in('ServiceApiLatency', 'Availability')\r\n| project Resource, _ResourceId, MetricName, Average, Total\r\n| union kind=outer diagnostic_table\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'ServiceApiLatency'),\r\n kpi2 = sumif(ErrorCounter, isnotnull(ErrorCounter)),\r\n kpi3 = avgif(Average*100, MetricName == 'Availability') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(toreal(kpi2)), 0.0, toreal(kpi2)) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3) \r\n|extend health1 = iff(kpi1>1000, 1, 0)\r\n|extend health2 = iff(kpi2>500, 1, 0)\r\n|extend health3 = iff(kpi3<90, 1, 0)\r\n|extend health = health1 + health2 + health3", - "resources": [ - "/subscriptions/$sub" - ] - }, - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "queryType": "Azure Log Analytics", - "refId": "A", - "subscriptions": [ - "ebb79bc0-aa86-44a7-8111-cabbe0c43993" - ] - } - ], - "title": "Key Vaults", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "A": false, - "Resource": true, - "_ResourceId": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": true, - "kpi4": true - }, - "indexByName": {}, - "renameByName": { - "A": " ", - "health": " " - } - } - } - ], - "transparent": true, - "type": "stat" - }, - { - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "links": [], - "mappings": [ - { - "options": { - "0": { - "index": 0, - "text": "Healthy" - }, - "1": { - "index": 1, - "text": "Warning" - } - }, - "type": "value" - }, - { - "options": { - "from": 2, - "result": { - "index": 2, - "text": "Unhealthy" - }, - "to": 3 - }, - "type": "range" - } - ], - "max": 3, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080", - "value": null - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-yellow", - "value": 1 - }, - { - "color": "dark-red", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 6, - "y": 6 - }, - "id": 46, - "links": [], - "options": { - "colorMode": "background_solid", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "max" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "targets": [ - { - "azureLogAnalytics": { - "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.network/trafficmanagerprofiles/'\r\n| where MetricName in('ProbeAgentCurrentEndpointStateByProfileResourceId', 'QpsByEndpoint')\r\n| summarize\r\n kpi1 = avgif(Maximum, MetricName == 'ProbeAgentCurrentEndpointStateByProfileResourceId'),\r\n kpi2 = avgif(Total, MetricName == 'QpsByEndpoint') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend health1 = iff(kpi1<=0, 1, 0)\r\n|extend health2 = iff(kpi2<=0, 1, 0)\r\n|extend health = health1 + health2", - "resources": [ - "/subscriptions/$sub" - ] - }, - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "queryType": "Azure Log Analytics", - "refId": "A", - "subscriptions": [ - "ebb79bc0-aa86-44a7-8111-cabbe0c43993" - ] - } - ], - "title": "Traffic Managers", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "A": false, - "Resource": true, - "_ResourceId": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": { - "A": " ", - "health": " " - } - } - } - ], - "transparent": true, - "type": "stat" - }, - { - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "links": [], - "mappings": [ - { - "options": { - "0": { - "index": 0, - "text": "Healthy" - }, - "1": { - "index": 1, - "text": "Warning" - } - }, - "type": "value" - }, - { - "options": { - "from": 2, - "result": { - "index": 2, - "text": "Unhealthy" - }, - "to": 3 - }, - "type": "range" - } - ], - "max": 3, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080", - "value": null - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-yellow", - "value": 1 - }, - { - "color": "dark-red", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 9, - "y": 6 - }, - "id": 53, - "links": [], - "options": { - "colorMode": "background_solid", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "max" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "targets": [ - { - "azureLogAnalytics": { - "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.cdn/profiles/'\r\n| where MetricName in('TotalLatency', 'ByteHitRatio', 'OriginHealthPercentage')\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'TotalLatency'),\r\n kpi2 = avgif(Average, MetricName == 'ByteHitRatio'),\r\n kpi3 = avgif(Average, MetricName == 'OriginHealthPercentage') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3)\r\n|extend health1 = iff(kpi1>100, 1, 0)\r\n|extend health2 = iff(kpi2<50, 1, 0)\r\n|extend health3 = iff(kpi3<95, 1, 0)\r\n|extend health = health1 + health2 + health3", - "resources": [ - "/subscriptions/$sub" - ] - }, - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "queryType": "Azure Log Analytics", - "refId": "A", - "subscriptions": [ - "ebb79bc0-aa86-44a7-8111-cabbe0c43993" - ] - } - ], - "title": "Front Doors", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "A": false, - "Resource": true, - "_ResourceId": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": { - "A": " ", - "health": " " - } - } - } - ], - "transparent": true, - "type": "stat" - }, - { - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "links": [], - "mappings": [ - { - "options": { - "0": { - "index": 0, - "text": "Healthy" - }, - "1": { - "index": 1, - "text": "Warning" - } - }, - "type": "value" - }, - { - "options": { - "from": 2, - "result": { - "index": 2, - "text": "Unhealthy" - }, - "to": 3 - }, - "type": "range" - } - ], - "max": 3, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080", - "value": null - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-yellow", - "value": 1 - }, - { - "color": "dark-red", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 12, - "y": 6 - }, - "id": 59, - "links": [], - "options": { - "colorMode": "background_solid", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "max" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "targets": [ - { - "azureLogAnalytics": { - "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.network/azurefirewalls/'\r\n| where MetricName in('FirewallHealth', 'SNATPortUtilization') \r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'FirewallHealth'),\r\n kpi2 = avgif(Average, MetricName == 'SNATPortUtilization') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2)\r\n|extend health1 = iff(kpi1<90, 1, 0)\r\n|extend health2 = iff(kpi2>80, 1, 0)\r\n|extend health = health1 + health2", - "resources": [ - "/subscriptions/$sub" - ] - }, - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "queryType": "Azure Log Analytics", - "refId": "A", - "subscriptions": [ - "ebb79bc0-aa86-44a7-8111-cabbe0c43993" - ] - } - ], - "title": "Firewalls", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "A": false, - "Resource": true, - "_ResourceId": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": { - "A": " ", - "health": " " - } - } - } - ], - "transparent": true, - "type": "stat" - }, - { - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "links": [], - "mappings": [ - { - "options": { - "0": { - "index": 0, - "text": "Healthy" - }, - "1": { - "index": 1, - "text": "Warning" - } - }, - "type": "value" - }, - { - "options": { - "from": 2, - "result": { - "index": 2, - "text": "Unhealthy" - }, - "to": 3 - }, - "type": "range" - } - ], - "max": 3, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080", - "value": null - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-yellow", - "value": 1 - }, - { - "color": "dark-red", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 15, - "y": 6 - }, - "id": 57, - "links": [], - "options": { - "colorMode": "background_solid", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "max" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "targets": [ - { - "azureLogAnalytics": { - "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.network/virtualnetworkgateways/'\r\n| where MetricName in('TunnelAverageBandwidth', 'AverageBandwidth', 'TunnelIngressBytes' )\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'TunnelAverageBandwidth'),\r\n kpi2 = avgif(Average, MetricName == 'TunnelEgressBytes'),\r\n kpi3 = avgif(Total, MetricName == 'TunnelIngressBytes') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3)\r\n|extend health1 = iff(kpi1<1, 1, 0)\r\n|extend health2 = iff(kpi2<=1, 1, 0)\r\n|extend health3 = iff(kpi3<=1, 1, 0)\r\n|extend health = health1 + health2 + health3", - "resources": [ - "/subscriptions/$sub" - ] - }, - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "queryType": "Azure Log Analytics", - "refId": "A", - "subscriptions": [ - "ebb79bc0-aa86-44a7-8111-cabbe0c43993" - ] - } - ], - "title": "VPN Gateways", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "A": false, - "Resource": true, - "_ResourceId": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": { - "A": " ", - "health": " " - } - } - } - ], - "transparent": true, - "type": "stat" - }, - { - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "links": [], - "mappings": [ - { - "options": { - "0": { - "index": 0, - "text": "Healthy" - }, - "1": { - "index": 1, - "text": "Warning" - } - }, - "type": "value" - }, - { - "options": { - "from": 2, - "result": { - "index": 2, - "text": "Unhealthy" - }, - "to": 3 - }, - "type": "range" - } - ], - "max": 3, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080", - "value": null - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-yellow", - "value": 1 - }, - { - "color": "dark-red", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 18, - "y": 6 - }, - "id": 66, - "links": [], - "options": { - "colorMode": "background_solid", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "max" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "targets": [ - { - "azureLogAnalytics": { - "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.network/virtualnetworkgateways/'\r\n| where MetricName in('ExpressRouteGatewayCpuUtilization', 'ExpressRouteGatewayBitsPerSecond', 'ExpressRouteGatewayPacketsPerSecond' )\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'ExpressRouteGatewayCpuUtilization'),\r\n kpi2 = avgif(Average, MetricName == 'ExpressRouteGatewayBitsPerSecond'),\r\n kpi3 = avgif(Total, MetricName == 'ExpressRouteGatewayPacketsPerSecond') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3)\r\n|extend health1 = iff(kpi1>80, 1, 0)\r\n|extend health2 = iff(kpi2<=1, 1, 0)\r\n|extend health3 = iff(kpi3<=1, 1, 0)\r\n|extend health = health1 + health2 + health3", - "resources": [ - "/subscriptions/$sub" - ] - }, - "datasource": { - "type": "grafana-azure-monitor-datasource", - "uid": "${ds}" - }, - "queryType": "Azure Log Analytics", - "refId": "A", - "subscriptions": [ - "ebb79bc0-aa86-44a7-8111-cabbe0c43993" - ] - } - ], - "title": "ExpressRoute Gateways", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "A": false, - "Resource": true, - "_ResourceId": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": { - "A": " ", - "health": " " - } - } - } - ], - "transparent": true, - "type": "stat" - }, - { - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 9 - }, - "id": 25, - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": "", - "mode": "markdown" - }, - "transparent": true, - "type": "text" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 10 - }, - "id": 22, - "panels": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080", - "value": null - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 0, - "y": 11 - }, - "id": 6, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 2, - "refId": "A" - } - ], - "title": "Virtual Machine CPU Percentage", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "health4": true, - "kpi2": true, - "kpi3": true, - "kpi4": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080", - "value": null - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 85 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 6, - "y": 11 - }, - "id": 92, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 2, - "refId": "A" - } - ], - "title": "Virtual Machine CPU Utilization 95th Percentile", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "TimeGenerated": true, - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "health4": true, - "kpi1": true, - "kpi2": false, - "kpi3": true, - "kpi4": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi2" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 15, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080", - "value": null - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 12, - "y": 11 - }, - "id": 7, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 2, - "refId": "A" - } - ], - "title": "Virtual Machine Available Memory GB", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "health4": true, - "kpi1": true, - "kpi2": true, - "kpi3": false, - "kpi4": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "field": "kpi3" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080", - "value": null - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 90 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 18, - "y": 11 - }, - "id": 8, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 2, - "refId": "A" - } - ], - "title": "Virtual Machine Availability", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "health4": true, - "kpi1": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "field": "kpi4" - } - ] - } - } - ], - "type": "bargauge" - } - ], - "title": "Virtual Machines", - "type": "row" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 11 - }, - "id": 21, - "panels": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 0, - "y": 24 - }, - "id": 16, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 26, - "refId": "A" - } - ], - "title": "Virtual Machine Scale Set CPU Percentage", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "health4": true, - "kpi1": false, - "kpi2": true, - "kpi3": true, - "kpi4": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 95 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 6, - "y": 24 - }, - "id": 93, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 26, - "refId": "A" - } - ], - "title": "Virtual Machine Scale Set OS Disk IOPS Consumed Percentage", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "health4": true, - "kpi1": true, - "kpi2": false, - "kpi3": true, - "kpi4": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi2" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 15, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 12, - "y": 24 - }, - "id": 17, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 26, - "refId": "A" - } - ], - "title": "Virtual Machine Scale Set Available Memory GB", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "health4": true, - "kpi1": true, - "kpi2": true, - "kpi4": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "field": "kpi3" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 90 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 18, - "y": 24 - }, - "id": 18, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 26, - "refId": "A" - } - ], - "title": "Virtual Machine Scale Set Availability", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "health4": true, - "kpi1": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - } - ], - "type": "bargauge" - } - ], - "title": "Virtual Machine Scale Sets", - "type": "row" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 12 - }, - "id": 23, - "panels": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 5000, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 5000 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 0, - "y": 13 - }, - "id": 29, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 27, - "refId": "A" - } - ], - "title": "Storage Success End to End Latency", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "health4": true, - "kpi2": true, - "kpi3": true, - "kpi4": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 5000, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 500 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 6, - "y": 13 - }, - "id": 30, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 27, - "refId": "A" - } - ], - "title": "Storage Failing Transactions", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "health4": true, - "kpi1": true, - "kpi2": false, - "kpi3": true, - "kpi4": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi2" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 4000000000000000, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 4000000000000000 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 12, - "y": 13 - }, - "id": 94, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 27, - "refId": "A" - } - ], - "title": "Storage Used Capacity", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "health4": true, - "kpi1": true, - "kpi2": true, - "kpi3": false, - "kpi4": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "filterByValue", - "options": { - "filters": [ - { - "config": { - "id": "regex", - "options": { - "value": ".*NaN" - } - }, - "fieldName": "kpi3" - } - ], - "match": "any", - "type": "exclude" - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi3" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 90 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 18, - "y": 13 - }, - "id": 31, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 27, - "refId": "A" - } - ], - "title": "Storage Availability", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "health4": true, - "kpi1": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": false, - "field": "kpi4" - } - ] - } - } - ], - "type": "bargauge" - } - ], - "title": "Storage", - "type": "row" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 13 - }, - "id": 24, - "panels": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 2000, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 1000 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 0, - "y": 50 - }, - "id": 32, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 28, - "refId": "A" - } - ], - "title": "Key Vault Service API Latency", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 1000, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 500 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 6, - "y": 50 - }, - "id": 33, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 28, - "refId": "A" - } - ], - "title": "Key Vault Failing Transactions", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": false, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 90 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 12, - "y": 50 - }, - "id": 51, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 28, - "refId": "A" - } - ], - "title": "Key Vault Availability", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": false - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": false, - "field": "kpi3" - } - ] - } - } - ], - "type": "bargauge" - } - ], - "title": "Key Vaults", - "type": "row" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 14 - }, - "id": 35, - "panels": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 5000, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 900 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 0, - "y": 63 - }, - "id": 37, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 36, - "refId": "A" - } - ], - "title": "Load Balancer Used SNAT Ports", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 51 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 6, - "y": 63 - }, - "id": 38, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 36, - "refId": "A" - } - ], - "title": "Load Balancer Health Probe Status", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": false, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": false, - "field": "kpi2" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 50 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 12, - "y": 63 - }, - "id": 39, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 36, - "refId": "A" - } - ], - "title": "Load Balancer Data Path Availability", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": false - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": false, - "field": "kpi3" - } - ] - } - } - ], - "type": "bargauge" - } - ], - "title": "Load Balancers", - "type": "row" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 15 - }, - "id": 45, - "panels": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 25, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 0, - "y": 16 - }, - "id": 47, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 46, - "refId": "A" - } - ], - "title": "Traffic Manager Endpoint Status by Endpoint", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": false, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 25, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 6, - "y": 16 - }, - "id": 48, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 46, - "refId": "A" - } - ], - "title": "Traffic Manager Queries by Endpoint Returned", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": false, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": false, - "field": "kpi2" - } - ] - } - } - ], - "type": "bargauge" - } - ], - "title": "Traffic Managers", - "type": "row" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 16 - }, - "id": 40, - "panels": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 25, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 0, - "y": 89 - }, - "id": 42, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 41, - "refId": "A" - } - ], - "title": "Application Gateway Unhealthy Host Count", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 500, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 10 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 6, - "y": 89 - }, - "id": 43, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 41, - "refId": "A" - } - ], - "title": "Application Gateway Failed Requests", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": false, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi2" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 25, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 12, - "y": 89 - }, - "id": 44, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 41, - "refId": "A" - } - ], - "title": "Application Gateway Healthy Host Count", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": false - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": false, - "field": "kpi3" - } - ] - } - } - ], - "type": "bargauge" - } - ], - "title": "Application Gateways", - "type": "row" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 17 - }, - "id": 52, - "panels": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 500, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 100 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 0, - "y": 102 - }, - "id": 69, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 53, - "refId": "A" - } - ], - "title": "Front Door Total Latency", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 500, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 50 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 6, - "y": 102 - }, - "id": 70, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 53, - "refId": "A" - } - ], - "title": "Front Door Byte Hit Ratio", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 95 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 12, - "y": 102 - }, - "id": 71, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 53, - "refId": "A" - } - ], - "title": "Front Door Origin Health Percentage", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": false, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - } - ], - "title": "Front Doors", - "type": "row" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 18 - }, - "id": 49, - "panels": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 99 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 0, - "y": 115 - }, - "id": 72, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 50, - "refId": "A" - } - ], - "title": "Public IP Availability", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": false, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": false, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 1, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 0.001 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 6, - "y": 115 - }, - "id": 95, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 50, - "refId": "A" - } - ], - "title": "Virtual Network Under DDoS Attack", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": false, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 50000, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 1000 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 12, - "y": 115 - }, - "id": 96, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 50, - "refId": "A" - } - ], - "title": "Virtual Network Inbound Packets DDoS", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": false - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - } - ], - "title": "Public IPs", - "type": "row" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 19 - }, - "id": 58, - "panels": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 90 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 0, - "y": 128 - }, - "id": 78, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 59, - "refId": "A" - } - ], - "title": "Firewall Health", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": false, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": false, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 1000, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 6, - "y": 128 - }, - "id": 79, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 59, - "refId": "A" - } - ], - "title": "Firewall SNAT Port Utilization", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": false, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - } - ], - "title": "Firewalls", - "type": "row" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 20 - }, - "id": 55, - "panels": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 1, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 0.001 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 0, - "y": 141 - }, - "id": 34, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 54, - "refId": "A" - } - ], - "title": "Virtual Network Under DDoS Attack", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": false, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 50000, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 1000 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 6, - "y": 141 - }, - "id": 73, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 54, - "refId": "A" - } - ], - "title": "Virtual Network Inbound Packets DDoS", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": false, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 5000, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 12, - "y": 141 - }, - "id": 74, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 54, - "refId": "A" - } - ], - "title": "Virtual Network Packets Forwarded DDoS", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": false - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - } - ], - "title": "Virtual Networks", - "type": "row" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 21 - }, - "id": 56, - "panels": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100000, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 0, - "y": 154 - }, - "id": 75, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 57, - "refId": "A" - } - ], - "title": "VPN Gateway Tunnel Bandwidth", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": false, - "kpi2": true, - "kpi3": false - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": false, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 8000000000, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 6, - "y": 154 - }, - "id": 76, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 57, - "refId": "A" - } - ], - "title": "VPN Gateway Tunnel Egress Bytes", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": false, - "kpi2": true, - "kpi3": false - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": false, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 8000000000, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 12, - "y": 154 - }, - "id": 77, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 57, - "refId": "A" - } - ], - "title": "VPN Gateway Tunnel Ingress Bytes", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": false, - "kpi2": true, - "kpi3": false - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": false, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - } - ], - "title": "VPN Gateways", - "type": "row" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 22 - }, - "id": 67, - "panels": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 90 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 0, - "y": 167 - }, - "id": 87, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "Express Route Circuit BGP Availability", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Health": true, - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": false, - "kpi2": true, - "kpi3": true, - "kpi4": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 90 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 6, - "y": 167 - }, - "id": 97, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "Express Route Circuit ARP Availability", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Health": true, - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": false, - "kpi3": true, - "kpi4": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 10000, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 100 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 12, - "y": 167 - }, - "id": 88, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "Express Route QoS Drop Bits In Per Second", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Health": true, - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": false, - "kpi4": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 10000, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 100 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 18, - "y": 167 - }, - "id": 89, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "Express Route QoS Drop Bits Out Per Second", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Health": true, - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - } - ], - "title": "ExpressRoute Circuits", - "type": "row" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 23 - }, - "id": 65, - "panels": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-green", - "value": 0 - }, - { - "color": "dark-red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 0, - "y": 180 - }, - "id": 84, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 66, - "refId": "A" - } - ], - "title": "Express Route Gateway CPU Utilization", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": false, - "kpi2": true, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "kpi1" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100000, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 6, - "y": 180 - }, - "id": 85, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 66, - "refId": "A" - } - ], - "title": "Express Route Gateway Bits Per Second", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": false, - "kpi3": true - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": false, - "field": "kpi2" - } - ] - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 100000, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#808080" - }, - { - "color": "dark-red", - "value": 0 - }, - { - "color": "dark-green", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 6, - "x": 12, - "y": 180 - }, - "id": 86, - "options": { - "displayMode": "basic", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "valueMode": "color" - }, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 66, - "refId": "A" - } - ], - "title": "Express Route Gateway Packets Per Second", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "_ResourceId": true, - "health": true, - "health1": true, - "health2": true, - "health3": true, - "kpi1": true, - "kpi2": true, - "kpi3": false - }, - "indexByName": {}, - "renameByName": {} - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": false, - "field": "kpi3" - } - ] - } - } - ], - "type": "bargauge" - } - ], - "title": "ExpressRoute Gateway", - "type": "row" - } - ], - "refresh": "", - "schemaVersion": 38, - "style": "dark", - "tags": [], - "templating": { - "list": [ + "targets": [ { - "current": {}, - "hide": 0, - "includeAll": false, - "label": "Datasource", - "multi": false, - "name": "ds", - "options": [], - "query": "grafana-azure-monitor-datasource", - "queryValue": "", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "current": {}, + "azureLogAnalytics": { + "query": "let insight_table = InsightsMetrics\r\n| where _ResourceId has '/microsoft.compute/virtualmachines/'\r\n| where Origin == \"vm.azm.ms\"\r\n| where Namespace == \"Processor\" and Name == \"UtilizationPercentage\"\r\n| extend Resource = toupper(tostring(split(_ResourceId,'/')[8]));\r\nAzureMetrics\r\n| where _ResourceId has '/microsoft.compute/virtualmachines/'\r\n| where MetricName in('Percentage CPU', 'Available Memory Bytes', 'VmAvailabilityMetric')\r\n| union kind=outer insight_table\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'Percentage CPU'),\r\n kpi2 = percentile(Val, 95),\r\n kpi3 = avgif(Average/1000000000, MetricName == 'Available Memory Bytes'),\r\n kpi4 = avgif(Average*100, MetricName == 'VmAvailabilityMetric') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3) \r\n|extend kpi4 = iff(isnan(kpi4), 0.0, kpi4) \r\n|extend health1 = iff(kpi1>80, 1, 0)\r\n|extend health2 = iff(kpi2>85, 1, 0)\r\n|extend health3 = iff(kpi3<1, 1, 0)\r\n|extend health4 = iff(kpi4<90, 1, 0)\r\n|extend health = health1 + health2 + health3 + health4", + "resources": ["/subscriptions/$sub"] + }, "datasource": { "type": "grafana-azure-monitor-datasource", "uid": "${ds}" }, - "definition": "", - "hide": 0, - "includeAll": false, - "label": "Subscription", - "multi": false, - "name": "sub", - "options": [], - "query": { - "azureLogAnalytics": { - "query": "", - "resources": [] - }, - "queryType": "Azure Subscriptions", - "refId": "A" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 5, - "type": "query" + "queryType": "Azure Log Analytics", + "refId": "A", + "subscriptions": ["ebb79bc0-aa86-44a7-8111-cabbe0c43993"] } - ] + ], + "title": "Virtual Machines", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "A": false, + "Resource": true, + "_ResourceId": true, + "health1": true, + "health2": true, + "health3": true, + "health4": true, + "kpi1": true, + "kpi2": true, + "kpi3": true, + "kpi4": true + }, + "indexByName": {}, + "renameByName": { + "A": " ", + "health": " " + } + } + } + ], + "transparent": true, + "type": "stat" }, - "time": { - "from": "now-6h", - "to": "now" + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "links": [], + "mappings": [ + { + "options": { + "0": { + "index": 0, + "text": "Healthy" + }, + "1": { + "index": 1, + "text": "Warning" + } + }, + "type": "value" + }, + { + "options": { + "from": 2, + "result": { + "index": 2, + "text": "Unhealthy" + }, + "to": 4 + }, + "type": "range" + } + ], + "max": 4, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080", + "value": null + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-yellow", + "value": 1 + }, + { + "color": "dark-red", + "value": 2 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 3, + "y": 3 + }, + "id": 27, + "links": [], + "options": { + "colorMode": "background_solid", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["max"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "let stroage_table = StorageBlobLogs \r\n | where StatusText != 'Success'\r\n | extend ErrorCounter = 1\r\n | extend ResourceName = AccountName\r\n | extend _ResourceId = trim('/blobservices/default', _ResourceId)\r\n | extend _ResourceId = trim('/queueservices/default', _ResourceId)\r\n | extend _ResourceId = trim('/tableservices/default', _ResourceId)\r\n | extend _ResourceId = trim('/fileservices/default', _ResourceId)\r\n | project TimeGenerated, ResourceName, StatusText, ErrorCounter, _ResourceId;\r\nAzureMetrics\r\n| where _ResourceId has '/microsoft.storage/'\r\n| where MetricName in('SuccessE2ELatency', 'UsedCapacity', 'Availability')\r\n| extend ResourceName = tostring(split(_ResourceId,'/')[8])\r\n| extend _ResourceId = trim('/blobservices/default', _ResourceId)\r\n| extend _ResourceId = trim('/queueservices/default', _ResourceId)\r\n| extend _ResourceId = trim('/tableservices/default', _ResourceId)\r\n| extend _ResourceId = trim('/fileservices/default', _ResourceId)\r\n| project ResourceName, _ResourceId, MetricName, Average, Total\r\n| union kind=outer stroage_table\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'SuccessE2ELatency'),\r\n kpi2 = sumif(ErrorCounter, isnotnull(ErrorCounter)),\r\n kpi3 = avgif(Average, MetricName == 'UsedCapacity'),\r\n kpi4 = avgif(Average, MetricName == 'Availability') by _ResourceId, ResourceName\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(toreal(kpi2)), 0.0, toreal(kpi2)) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3) \r\n|extend kpi4 = iff(isnan(kpi4), 0.0, kpi4) \r\n|extend health1 = iff(kpi1>5000, 1, 0)\r\n|extend health2 = iff(kpi2>500, 1, 0)\r\n|extend health3 = iff(kpi3>4000000000000000, 1, 0)\r\n|extend health4 = iff(kpi4<90, 1, 0)\r\n|extend health = health1 + health2 + health3 + health4", + "resources": ["/subscriptions/$sub"] + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscriptions": ["ebb79bc0-aa86-44a7-8111-cabbe0c43993"] + } + ], + "title": "Storage", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "A": false, + "Resource": true, + "ResourceName": true, + "_ResourceId": true, + "health1": true, + "health2": true, + "health3": true, + "health4": true, + "kpi1": true, + "kpi2": true, + "kpi3": true, + "kpi4": true + }, + "indexByName": {}, + "renameByName": { + "A": " ", + "health": " " + } + } + } + ], + "transparent": true, + "type": "stat" }, - "timepicker": {}, - "timezone": "", - "title": "Azure / Infrastructure / Infrastructure Monitoring", - "uid": "azure-infrastructure-monitoring", - "version": 215 - } \ No newline at end of file + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "links": [], + "mappings": [ + { + "options": { + "0": { + "index": 0, + "text": "Healthy" + }, + "1": { + "index": 1, + "text": "Warning" + } + }, + "type": "value" + }, + { + "options": { + "from": 2, + "result": { + "index": 2, + "text": "Unhealthy" + }, + "to": 3 + }, + "type": "range" + } + ], + "max": 3, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080", + "value": null + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-yellow", + "value": 1 + }, + { + "color": "dark-red", + "value": 2 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 6, + "y": 3 + }, + "id": 36, + "links": [], + "options": { + "colorMode": "background_solid", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["max"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.network/loadbalancers/'\r\n| where MetricName in('UsedSnatPorts', 'DipAvailability', 'VipAvailability')\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'UsedSnatPorts'),\r\n kpi2 = avgif(Average, MetricName == 'DipAvailability'),\r\n kpi3 = avgif(Average, MetricName == 'VipAvailability') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3) \r\n|extend health1 = iff(kpi1>900, 1, 0)\r\n|extend health2 = iff(kpi2<=50, 1, 0)\r\n|extend health3 = iff(kpi3<50, 1, 0)\r\n|extend health = health1 + health2 + health3", + "resources": ["/subscriptions/$sub"] + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscriptions": ["ebb79bc0-aa86-44a7-8111-cabbe0c43993"] + } + ], + "title": "Load Balancers", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "A": false, + "Resource": true, + "_ResourceId": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": { + "A": " ", + "health": " " + } + } + } + ], + "transparent": true, + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "links": [], + "mappings": [ + { + "options": { + "0": { + "index": 0, + "text": "Healthy" + }, + "1": { + "index": 1, + "text": "Warning" + } + }, + "type": "value" + }, + { + "options": { + "from": 2, + "result": { + "index": 2, + "text": "Unhealthy" + }, + "to": 3 + }, + "type": "range" + } + ], + "max": 3, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080", + "value": null + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-yellow", + "value": 1 + }, + { + "color": "dark-red", + "value": 2 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 9, + "y": 3 + }, + "id": 41, + "links": [], + "options": { + "colorMode": "background_solid", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["max"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.network/applicationgateways/'\r\n| where MetricName in('UnhealthyHostCount', 'FailedRequests', 'HealthyHostCount')\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'UnhealthyHostCount'),\r\n kpi2 = sumif(Total, MetricName == 'FailedRequests'),\r\n kpi3 = avgif(Average, MetricName == 'HealthyHostCount') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3) \r\n|extend health1 = iff(kpi1>=1, 1, 0)\r\n|extend health2 = iff(kpi2>10, 1, 0)\r\n|extend health3 = iff(kpi3<=0, 1, 0)\r\n|extend health = health1 + health2 + health3", + "resources": ["/subscriptions/$sub"] + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscriptions": ["ebb79bc0-aa86-44a7-8111-cabbe0c43993"] + } + ], + "title": "Application Gateways", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "A": false, + "Resource": true, + "_ResourceId": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": { + "A": " ", + "health": " " + } + } + } + ], + "transparent": true, + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "links": [], + "mappings": [ + { + "options": { + "0": { + "index": 0, + "text": "Healthy" + }, + "1": { + "index": 1, + "text": "Warning" + } + }, + "type": "value" + }, + { + "options": { + "from": 2, + "result": { + "index": 2, + "text": "Unhealthy" + }, + "to": 3 + }, + "type": "range" + } + ], + "max": 3, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080", + "value": null + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-yellow", + "value": 1 + }, + { + "color": "dark-red", + "value": 2 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 12, + "y": 3 + }, + "id": 50, + "links": [], + "options": { + "colorMode": "background_solid", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["max"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.network/publicipaddresses/'\r\n| where MetricName in('VipAvailability', 'IfUnderDDoSAttack', 'PacketsInDDoS')\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'VipAvailability'),\r\n kpi2 = avgif(Maximum, MetricName == 'IfUnderDDoSAttack'),\r\n kpi3 = avgif(Total, MetricName == 'PacketsInDDoS') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2)\r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3)\r\n|extend health1 = iff(kpi1<100, 1, 0)\r\n|extend health2 = iff(kpi2>0, 1, 0)\r\n|extend health3 = iff(kpi3>=1000, 1, 0)\r\n|extend health = health1 + health2 + health3", + "resources": ["/subscriptions/$sub"] + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscriptions": ["ebb79bc0-aa86-44a7-8111-cabbe0c43993"] + } + ], + "title": "Public IPs", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "A": false, + "Resource": true, + "_ResourceId": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": { + "A": " ", + "health": " " + } + } + } + ], + "transparent": true, + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "links": [], + "mappings": [ + { + "options": { + "0": { + "index": 0, + "text": "Healthy" + }, + "1": { + "index": 1, + "text": "Warning" + } + }, + "type": "value" + }, + { + "options": { + "from": 2, + "result": { + "index": 2, + "text": "Unhealthy" + }, + "to": 3 + }, + "type": "range" + } + ], + "max": 3, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080", + "value": null + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-yellow", + "value": 1 + }, + { + "color": "dark-red", + "value": 2 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 15, + "y": 3 + }, + "id": 54, + "links": [], + "options": { + "colorMode": "background_solid", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["max"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.network/virtualnetworks/'\r\n| where MetricName in('IfUnderDDoSAttack', 'PacketsInDDoS', 'PacketsForwardedDDoS')\r\n| summarize\r\n kpi1 = avgif(Maximum, MetricName == 'IfUnderDDoSAttack'),\r\n kpi2 = avgif(Maximum, MetricName == 'PacketsInDDoS'),\r\n kpi3 = avgif(Maximum, MetricName == 'PacketsForwardedDDoS') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3)\r\n|extend health1 = iff(kpi1>0, 1, 0)\r\n|extend health2 = iff(kpi2>=1000, 1, 0)\r\n|extend health3 = iff(kpi3>1, 1, 0)\r\n|extend health = health1 + health2 + health3", + "resources": ["/subscriptions/$sub"] + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscriptions": ["ebb79bc0-aa86-44a7-8111-cabbe0c43993"] + } + ], + "title": "Virtual Networks", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "A": false, + "Resource": true, + "_ResourceId": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": { + "A": " ", + "health": " " + } + } + } + ], + "transparent": true, + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "links": [], + "mappings": [ + { + "options": { + "0": { + "index": 0, + "text": "Healthy" + }, + "1": { + "index": 1, + "text": "Warning" + } + }, + "type": "value" + }, + { + "options": { + "from": 2, + "result": { + "index": 2, + "text": "Unhealthy" + }, + "to": 3 + }, + "type": "range" + } + ], + "max": 3, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080", + "value": null + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-yellow", + "value": 1 + }, + { + "color": "dark-red", + "value": 2 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 18, + "y": 3 + }, + "id": 68, + "links": [], + "options": { + "colorMode": "background_solid", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["max"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.network/expressroutecircuits/'\r\n| where MetricName in('BgpAvailability', 'ArpAvailability', 'QosDropBitsInPerSecond', 'QosDropBitsOutPerSecond' )\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'BgpAvailability'),\r\n kpi2 = avgif(Average, MetricName == 'ArpAvailability'),\r\n kpi3 = avgif(Average, MetricName == 'QosDropBitsInPerSecond'),\r\n kpi4 = avgif(Total, MetricName == 'QosDropBitsOutPerSecond') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3) \r\n|extend kpi4 = iff(isnan(kpi4), 0.0, kpi4)\r\n|extend health1 = iff(kpi1<90, 1, 0)\r\n|extend health2 = iff(kpi1<90, 1, 0)\r\n|extend health3 = iff(kpi2>100, 1, 0)\r\n|extend health4 = iff(kpi3>100, 1, 0)\r\n|extend health = health1 + health2 + health3 + health4\r\n", + "resources": ["/subscriptions/$sub"] + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscriptions": ["ebb79bc0-aa86-44a7-8111-cabbe0c43993"] + } + ], + "title": "ExpressRoute Circuits", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "A": false, + "Resource": true, + "_ResourceId": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": true, + "kpi4": true + }, + "indexByName": {}, + "renameByName": { + "A": " ", + "health": " " + } + } + } + ], + "transparent": true, + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "links": [], + "mappings": [ + { + "options": { + "0": { + "index": 0, + "text": "Healthy" + }, + "1": { + "index": 1, + "text": "Warning" + } + }, + "type": "value" + }, + { + "options": { + "from": 2, + "result": { + "index": 2, + "text": "Unhealthy" + }, + "to": 4 + }, + "type": "range" + } + ], + "max": 4, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080", + "value": null + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-yellow", + "value": 1 + }, + { + "color": "dark-red", + "value": 2 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 0, + "y": 6 + }, + "id": 26, + "links": [], + "options": { + "colorMode": "background_solid", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["max"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.compute/virtualmachinescalesets/'\r\n| where MetricName in('Percentage CPU', 'OS Disk IOPS Consumed Percentage','Available Memory Bytes', 'VmAvailabilityMetric')\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'Percentage CPU'),\r\n kpi2 = avgif(Average, MetricName == 'OS Disk IOPS Consumed Percentage'),\r\n kpi3 = avgif(Average/1000000000, MetricName == 'Available Memory Bytes'),\r\n kpi4 = avgif(Average*100, MetricName == 'VmAvailabilityMetric') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3) \r\n|extend kpi4 = iff(isnan(kpi4), 0.0, kpi4)\r\n|extend health1 = iff(kpi1>80, 1, 0)\r\n|extend health2 = iff(kpi2>95, 1, 0)\r\n|extend health3 = iff(kpi3<1, 1, 0)\r\n|extend health4 = iff(kpi4<90, 1, 0)\r\n|extend health = health1 + health2 + health3 + health4", + "resources": ["/subscriptions/$sub"] + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscriptions": ["ebb79bc0-aa86-44a7-8111-cabbe0c43993"] + } + ], + "title": "Virtual Machine Scale Sets", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "A": false, + "Resource": true, + "_ResourceId": true, + "health1": true, + "health2": true, + "health3": true, + "health4": true, + "kpi1": true, + "kpi2": true, + "kpi3": true, + "kpi4": true + }, + "indexByName": {}, + "renameByName": { + "A": " ", + "health": " " + } + } + } + ], + "transparent": true, + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "links": [], + "mappings": [ + { + "options": { + "0": { + "index": 0, + "text": "Healthy" + }, + "1": { + "index": 1, + "text": "Warning" + } + }, + "type": "value" + }, + { + "options": { + "from": 2, + "result": { + "index": 2, + "text": "Unhealthy" + }, + "to": 3 + }, + "type": "range" + } + ], + "max": 3, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080", + "value": null + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-yellow", + "value": 1 + }, + { + "color": "dark-red", + "value": 2 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 3, + "y": 6 + }, + "id": 28, + "links": [], + "options": { + "colorMode": "background_solid", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["max"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "let diagnostic_table = AzureDiagnostics \r\n | where _ResourceId has '/microsoft.keyvault/vaults/'\r\n | where ResultSignature !='OK'\r\n | extend ErrorCounter = 1\r\n | project TimeGenerated, Resource, ErrorCounter, _ResourceId;\r\nAzureMetrics\r\n| where _ResourceId has '/microsoft.keyvault/vaults/'\r\n| where MetricName in('ServiceApiLatency', 'Availability')\r\n| project Resource, _ResourceId, MetricName, Average, Total\r\n| union kind=outer diagnostic_table\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'ServiceApiLatency'),\r\n kpi2 = sumif(ErrorCounter, isnotnull(ErrorCounter)),\r\n kpi3 = avgif(Average*100, MetricName == 'Availability') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(toreal(kpi2)), 0.0, toreal(kpi2)) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3) \r\n|extend health1 = iff(kpi1>1000, 1, 0)\r\n|extend health2 = iff(kpi2>500, 1, 0)\r\n|extend health3 = iff(kpi3<90, 1, 0)\r\n|extend health = health1 + health2 + health3", + "resources": ["/subscriptions/$sub"] + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscriptions": ["ebb79bc0-aa86-44a7-8111-cabbe0c43993"] + } + ], + "title": "Key Vaults", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "A": false, + "Resource": true, + "_ResourceId": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": true, + "kpi4": true + }, + "indexByName": {}, + "renameByName": { + "A": " ", + "health": " " + } + } + } + ], + "transparent": true, + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "links": [], + "mappings": [ + { + "options": { + "0": { + "index": 0, + "text": "Healthy" + }, + "1": { + "index": 1, + "text": "Warning" + } + }, + "type": "value" + }, + { + "options": { + "from": 2, + "result": { + "index": 2, + "text": "Unhealthy" + }, + "to": 3 + }, + "type": "range" + } + ], + "max": 3, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080", + "value": null + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-yellow", + "value": 1 + }, + { + "color": "dark-red", + "value": 2 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 6, + "y": 6 + }, + "id": 46, + "links": [], + "options": { + "colorMode": "background_solid", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["max"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.network/trafficmanagerprofiles/'\r\n| where MetricName in('ProbeAgentCurrentEndpointStateByProfileResourceId', 'QpsByEndpoint')\r\n| summarize\r\n kpi1 = avgif(Maximum, MetricName == 'ProbeAgentCurrentEndpointStateByProfileResourceId'),\r\n kpi2 = avgif(Total, MetricName == 'QpsByEndpoint') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend health1 = iff(kpi1<=0, 1, 0)\r\n|extend health2 = iff(kpi2<=0, 1, 0)\r\n|extend health = health1 + health2", + "resources": ["/subscriptions/$sub"] + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscriptions": ["ebb79bc0-aa86-44a7-8111-cabbe0c43993"] + } + ], + "title": "Traffic Managers", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "A": false, + "Resource": true, + "_ResourceId": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": { + "A": " ", + "health": " " + } + } + } + ], + "transparent": true, + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "links": [], + "mappings": [ + { + "options": { + "0": { + "index": 0, + "text": "Healthy" + }, + "1": { + "index": 1, + "text": "Warning" + } + }, + "type": "value" + }, + { + "options": { + "from": 2, + "result": { + "index": 2, + "text": "Unhealthy" + }, + "to": 3 + }, + "type": "range" + } + ], + "max": 3, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080", + "value": null + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-yellow", + "value": 1 + }, + { + "color": "dark-red", + "value": 2 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 9, + "y": 6 + }, + "id": 53, + "links": [], + "options": { + "colorMode": "background_solid", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["max"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.cdn/profiles/'\r\n| where MetricName in('TotalLatency', 'ByteHitRatio', 'OriginHealthPercentage')\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'TotalLatency'),\r\n kpi2 = avgif(Average, MetricName == 'ByteHitRatio'),\r\n kpi3 = avgif(Average, MetricName == 'OriginHealthPercentage') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3)\r\n|extend health1 = iff(kpi1>100, 1, 0)\r\n|extend health2 = iff(kpi2<50, 1, 0)\r\n|extend health3 = iff(kpi3<95, 1, 0)\r\n|extend health = health1 + health2 + health3", + "resources": ["/subscriptions/$sub"] + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscriptions": ["ebb79bc0-aa86-44a7-8111-cabbe0c43993"] + } + ], + "title": "Front Doors", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "A": false, + "Resource": true, + "_ResourceId": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": { + "A": " ", + "health": " " + } + } + } + ], + "transparent": true, + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "links": [], + "mappings": [ + { + "options": { + "0": { + "index": 0, + "text": "Healthy" + }, + "1": { + "index": 1, + "text": "Warning" + } + }, + "type": "value" + }, + { + "options": { + "from": 2, + "result": { + "index": 2, + "text": "Unhealthy" + }, + "to": 3 + }, + "type": "range" + } + ], + "max": 3, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080", + "value": null + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-yellow", + "value": 1 + }, + { + "color": "dark-red", + "value": 2 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 12, + "y": 6 + }, + "id": 59, + "links": [], + "options": { + "colorMode": "background_solid", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["max"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.network/azurefirewalls/'\r\n| where MetricName in('FirewallHealth', 'SNATPortUtilization') \r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'FirewallHealth'),\r\n kpi2 = avgif(Average, MetricName == 'SNATPortUtilization') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2)\r\n|extend health1 = iff(kpi1<90, 1, 0)\r\n|extend health2 = iff(kpi2>80, 1, 0)\r\n|extend health = health1 + health2", + "resources": ["/subscriptions/$sub"] + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscriptions": ["ebb79bc0-aa86-44a7-8111-cabbe0c43993"] + } + ], + "title": "Firewalls", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "A": false, + "Resource": true, + "_ResourceId": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": { + "A": " ", + "health": " " + } + } + } + ], + "transparent": true, + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "links": [], + "mappings": [ + { + "options": { + "0": { + "index": 0, + "text": "Healthy" + }, + "1": { + "index": 1, + "text": "Warning" + } + }, + "type": "value" + }, + { + "options": { + "from": 2, + "result": { + "index": 2, + "text": "Unhealthy" + }, + "to": 3 + }, + "type": "range" + } + ], + "max": 3, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080", + "value": null + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-yellow", + "value": 1 + }, + { + "color": "dark-red", + "value": 2 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 15, + "y": 6 + }, + "id": 57, + "links": [], + "options": { + "colorMode": "background_solid", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["max"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.network/virtualnetworkgateways/'\r\n| where MetricName in('TunnelAverageBandwidth', 'AverageBandwidth', 'TunnelIngressBytes' )\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'TunnelAverageBandwidth'),\r\n kpi2 = avgif(Average, MetricName == 'TunnelEgressBytes'),\r\n kpi3 = avgif(Total, MetricName == 'TunnelIngressBytes') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3)\r\n|extend health1 = iff(kpi1<1, 1, 0)\r\n|extend health2 = iff(kpi2<=1, 1, 0)\r\n|extend health3 = iff(kpi3<=1, 1, 0)\r\n|extend health = health1 + health2 + health3", + "resources": ["/subscriptions/$sub"] + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscriptions": ["ebb79bc0-aa86-44a7-8111-cabbe0c43993"] + } + ], + "title": "VPN Gateways", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "A": false, + "Resource": true, + "_ResourceId": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": { + "A": " ", + "health": " " + } + } + } + ], + "transparent": true, + "type": "stat" + }, + { + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "links": [], + "mappings": [ + { + "options": { + "0": { + "index": 0, + "text": "Healthy" + }, + "1": { + "index": 1, + "text": "Warning" + } + }, + "type": "value" + }, + { + "options": { + "from": 2, + "result": { + "index": 2, + "text": "Unhealthy" + }, + "to": 3 + }, + "type": "range" + } + ], + "max": 3, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080", + "value": null + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-yellow", + "value": 1 + }, + { + "color": "dark-red", + "value": 2 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 18, + "y": 6 + }, + "id": 66, + "links": [], + "options": { + "colorMode": "background_solid", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": ["max"], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "targets": [ + { + "azureLogAnalytics": { + "query": "AzureMetrics\r\n| where _ResourceId has '/microsoft.network/virtualnetworkgateways/'\r\n| where MetricName in('ExpressRouteGatewayCpuUtilization', 'ExpressRouteGatewayBitsPerSecond', 'ExpressRouteGatewayPacketsPerSecond' )\r\n| summarize\r\n kpi1 = avgif(Average, MetricName == 'ExpressRouteGatewayCpuUtilization'),\r\n kpi2 = avgif(Average, MetricName == 'ExpressRouteGatewayBitsPerSecond'),\r\n kpi3 = avgif(Total, MetricName == 'ExpressRouteGatewayPacketsPerSecond') by _ResourceId, Resource\r\n|extend kpi1 = iff(isnan(kpi1), 0.0, kpi1)\r\n|extend kpi2 = iff(isnan(kpi2), 0.0, kpi2) \r\n|extend kpi3 = iff(isnan(kpi3), 0.0, kpi3)\r\n|extend health1 = iff(kpi1>80, 1, 0)\r\n|extend health2 = iff(kpi2<=1, 1, 0)\r\n|extend health3 = iff(kpi3<=1, 1, 0)\r\n|extend health = health1 + health2 + health3", + "resources": ["/subscriptions/$sub"] + }, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "queryType": "Azure Log Analytics", + "refId": "A", + "subscriptions": ["ebb79bc0-aa86-44a7-8111-cabbe0c43993"] + } + ], + "title": "ExpressRoute Gateways", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "A": false, + "Resource": true, + "_ResourceId": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": { + "A": " ", + "health": " " + } + } + } + ], + "transparent": true, + "type": "stat" + }, + { + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 9 + }, + "id": 25, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "", + "mode": "markdown" + }, + "transparent": true, + "type": "text" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 10 + }, + "id": 22, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080", + "value": null + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 0, + "y": 11 + }, + "id": 6, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 2, + "refId": "A" + } + ], + "title": "Virtual Machine CPU Percentage", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "health4": true, + "kpi2": true, + "kpi3": true, + "kpi4": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080", + "value": null + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 85 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 6, + "y": 11 + }, + "id": 92, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 2, + "refId": "A" + } + ], + "title": "Virtual Machine CPU Utilization 95th Percentile", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "TimeGenerated": true, + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "health4": true, + "kpi1": true, + "kpi2": false, + "kpi3": true, + "kpi4": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi2" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 15, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080", + "value": null + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 1 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 12, + "y": 11 + }, + "id": 7, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 2, + "refId": "A" + } + ], + "title": "Virtual Machine Available Memory GB", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "health4": true, + "kpi1": true, + "kpi2": true, + "kpi3": false, + "kpi4": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "field": "kpi3" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080", + "value": null + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 90 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 18, + "y": 11 + }, + "id": 8, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 2, + "refId": "A" + } + ], + "title": "Virtual Machine Availability", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "health4": true, + "kpi1": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "field": "kpi4" + } + ] + } + } + ], + "type": "bargauge" + } + ], + "title": "Virtual Machines", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 11 + }, + "id": 21, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 0, + "y": 24 + }, + "id": 16, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 26, + "refId": "A" + } + ], + "title": "Virtual Machine Scale Set CPU Percentage", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "health4": true, + "kpi1": false, + "kpi2": true, + "kpi3": true, + "kpi4": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 95 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 6, + "y": 24 + }, + "id": 93, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 26, + "refId": "A" + } + ], + "title": "Virtual Machine Scale Set OS Disk IOPS Consumed Percentage", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "health4": true, + "kpi1": true, + "kpi2": false, + "kpi3": true, + "kpi4": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi2" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 15, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 1 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 12, + "y": 24 + }, + "id": 17, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 26, + "refId": "A" + } + ], + "title": "Virtual Machine Scale Set Available Memory GB", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "health4": true, + "kpi1": true, + "kpi2": true, + "kpi4": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "field": "kpi3" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 90 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 18, + "y": 24 + }, + "id": 18, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 26, + "refId": "A" + } + ], + "title": "Virtual Machine Scale Set Availability", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "health4": true, + "kpi1": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + } + ], + "type": "bargauge" + } + ], + "title": "Virtual Machine Scale Sets", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 23, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 5000, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 5000 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 0, + "y": 13 + }, + "id": 29, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 27, + "refId": "A" + } + ], + "title": "Storage Success End to End Latency", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "health4": true, + "kpi2": true, + "kpi3": true, + "kpi4": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 5000, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 500 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 6, + "y": 13 + }, + "id": 30, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 27, + "refId": "A" + } + ], + "title": "Storage Failing Transactions", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "health4": true, + "kpi1": true, + "kpi2": false, + "kpi3": true, + "kpi4": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi2" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 4000000000000000, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 4000000000000000 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 12, + "y": 13 + }, + "id": 94, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 27, + "refId": "A" + } + ], + "title": "Storage Used Capacity", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "health4": true, + "kpi1": true, + "kpi2": true, + "kpi3": false, + "kpi4": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "filterByValue", + "options": { + "filters": [ + { + "config": { + "id": "regex", + "options": { + "value": ".*NaN" + } + }, + "fieldName": "kpi3" + } + ], + "match": "any", + "type": "exclude" + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi3" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 90 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 18, + "y": 13 + }, + "id": 31, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 27, + "refId": "A" + } + ], + "title": "Storage Availability", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "health4": true, + "kpi1": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": false, + "field": "kpi4" + } + ] + } + } + ], + "type": "bargauge" + } + ], + "title": "Storage", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 13 + }, + "id": 24, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 2000, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 1000 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 0, + "y": 50 + }, + "id": 32, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 28, + "refId": "A" + } + ], + "title": "Key Vault Service API Latency", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 1000, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 500 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 6, + "y": 50 + }, + "id": 33, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 28, + "refId": "A" + } + ], + "title": "Key Vault Failing Transactions", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": false, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 90 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 12, + "y": 50 + }, + "id": 51, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 28, + "refId": "A" + } + ], + "title": "Key Vault Availability", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": false + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": false, + "field": "kpi3" + } + ] + } + } + ], + "type": "bargauge" + } + ], + "title": "Key Vaults", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 14 + }, + "id": 35, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 5000, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 900 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 0, + "y": 63 + }, + "id": 37, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 36, + "refId": "A" + } + ], + "title": "Load Balancer Used SNAT Ports", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 51 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 6, + "y": 63 + }, + "id": 38, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 36, + "refId": "A" + } + ], + "title": "Load Balancer Health Probe Status", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": false, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": false, + "field": "kpi2" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 50 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 12, + "y": 63 + }, + "id": 39, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 36, + "refId": "A" + } + ], + "title": "Load Balancer Data Path Availability", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": false + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": false, + "field": "kpi3" + } + ] + } + } + ], + "type": "bargauge" + } + ], + "title": "Load Balancers", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 15 + }, + "id": 45, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 25, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 1 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 0, + "y": 16 + }, + "id": 47, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 46, + "refId": "A" + } + ], + "title": "Traffic Manager Endpoint Status by Endpoint", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": false, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 25, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 1 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 6, + "y": 16 + }, + "id": 48, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 46, + "refId": "A" + } + ], + "title": "Traffic Manager Queries by Endpoint Returned", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": false, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": false, + "field": "kpi2" + } + ] + } + } + ], + "type": "bargauge" + } + ], + "title": "Traffic Managers", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 16 + }, + "id": 40, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 25, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 1 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 0, + "y": 89 + }, + "id": 42, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 41, + "refId": "A" + } + ], + "title": "Application Gateway Unhealthy Host Count", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 500, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 10 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 6, + "y": 89 + }, + "id": 43, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 41, + "refId": "A" + } + ], + "title": "Application Gateway Failed Requests", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": false, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi2" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 25, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 1 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 12, + "y": 89 + }, + "id": 44, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 41, + "refId": "A" + } + ], + "title": "Application Gateway Healthy Host Count", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": false + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": false, + "field": "kpi3" + } + ] + } + } + ], + "type": "bargauge" + } + ], + "title": "Application Gateways", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 17 + }, + "id": 52, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 500, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 100 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 0, + "y": 102 + }, + "id": 69, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 53, + "refId": "A" + } + ], + "title": "Front Door Total Latency", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 500, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 50 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 6, + "y": 102 + }, + "id": 70, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 53, + "refId": "A" + } + ], + "title": "Front Door Byte Hit Ratio", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 95 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 12, + "y": 102 + }, + "id": 71, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 53, + "refId": "A" + } + ], + "title": "Front Door Origin Health Percentage", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": false, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + } + ], + "title": "Front Doors", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 18 + }, + "id": 49, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 99 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 0, + "y": 115 + }, + "id": 72, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 50, + "refId": "A" + } + ], + "title": "Public IP Availability", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": false, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": false, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 1, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 0.001 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 6, + "y": 115 + }, + "id": 95, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 50, + "refId": "A" + } + ], + "title": "Virtual Network Under DDoS Attack", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": false, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 50000, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 1000 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 12, + "y": 115 + }, + "id": 96, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 50, + "refId": "A" + } + ], + "title": "Virtual Network Inbound Packets DDoS", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": false + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + } + ], + "title": "Public IPs", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 19 + }, + "id": 58, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 90 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 0, + "y": 128 + }, + "id": 78, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 59, + "refId": "A" + } + ], + "title": "Firewall Health", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": false, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": false, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 1000, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 6, + "y": 128 + }, + "id": 79, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 59, + "refId": "A" + } + ], + "title": "Firewall SNAT Port Utilization", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": false, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + } + ], + "title": "Firewalls", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 20 + }, + "id": 55, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 1, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 0.001 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 0, + "y": 141 + }, + "id": 34, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 54, + "refId": "A" + } + ], + "title": "Virtual Network Under DDoS Attack", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": false, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 50000, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 1000 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 6, + "y": 141 + }, + "id": 73, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 54, + "refId": "A" + } + ], + "title": "Virtual Network Inbound Packets DDoS", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": false, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 5000, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 1 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 12, + "y": 141 + }, + "id": 74, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 54, + "refId": "A" + } + ], + "title": "Virtual Network Packets Forwarded DDoS", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": false + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + } + ], + "title": "Virtual Networks", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 21 + }, + "id": 56, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100000, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 1 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 0, + "y": 154 + }, + "id": 75, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 57, + "refId": "A" + } + ], + "title": "VPN Gateway Tunnel Bandwidth", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": false, + "kpi2": true, + "kpi3": false + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": false, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 8000000000, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 2 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 6, + "y": 154 + }, + "id": 76, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 57, + "refId": "A" + } + ], + "title": "VPN Gateway Tunnel Egress Bytes", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": false, + "kpi2": true, + "kpi3": false + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": false, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 8000000000, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 2 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 12, + "y": 154 + }, + "id": 77, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 57, + "refId": "A" + } + ], + "title": "VPN Gateway Tunnel Ingress Bytes", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": false, + "kpi2": true, + "kpi3": false + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": false, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + } + ], + "title": "VPN Gateways", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 22 + }, + "id": 67, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 90 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 0, + "y": 167 + }, + "id": 87, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 68, + "refId": "A" + } + ], + "title": "Express Route Circuit BGP Availability", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Health": true, + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": false, + "kpi2": true, + "kpi3": true, + "kpi4": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 90 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 6, + "y": 167 + }, + "id": 97, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 68, + "refId": "A" + } + ], + "title": "Express Route Circuit ARP Availability", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Health": true, + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": false, + "kpi3": true, + "kpi4": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 10000, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 100 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 12, + "y": 167 + }, + "id": 88, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 68, + "refId": "A" + } + ], + "title": "Express Route QoS Drop Bits In Per Second", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Health": true, + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": false, + "kpi4": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 10000, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 100 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 18, + "y": 167 + }, + "id": 89, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 68, + "refId": "A" + } + ], + "title": "Express Route QoS Drop Bits Out Per Second", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Health": true, + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + } + ], + "title": "ExpressRoute Circuits", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 23 + }, + "id": 65, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-green", + "value": 0 + }, + { + "color": "dark-red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 0, + "y": 180 + }, + "id": 84, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 66, + "refId": "A" + } + ], + "title": "Express Route Gateway CPU Utilization", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": false, + "kpi2": true, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "kpi1" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100000, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 2 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 6, + "y": 180 + }, + "id": 85, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 66, + "refId": "A" + } + ], + "title": "Express Route Gateway Bits Per Second", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": false, + "kpi3": true + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": false, + "field": "kpi2" + } + ] + } + } + ], + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100000, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#808080" + }, + { + "color": "dark-red", + "value": 0 + }, + { + "color": "dark-green", + "value": 2 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 6, + "x": 12, + "y": 180 + }, + "id": 86, + "options": { + "displayMode": "basic", + "minVizHeight": 10, + "minVizWidth": 0, + "orientation": "horizontal", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "showUnfilled": true, + "valueMode": "color" + }, + "targets": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Dashboard --" + }, + "panelId": 66, + "refId": "A" + } + ], + "title": "Express Route Gateway Packets Per Second", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "_ResourceId": true, + "health": true, + "health1": true, + "health2": true, + "health3": true, + "kpi1": true, + "kpi2": true, + "kpi3": false + }, + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": false, + "field": "kpi3" + } + ] + } + } + ], + "type": "bargauge" + } + ], + "title": "ExpressRoute Gateway", + "type": "row" + } + ], + "refresh": "", + "schemaVersion": 38, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "current": {}, + "hide": 0, + "includeAll": false, + "label": "Datasource", + "multi": false, + "name": "ds", + "options": [], + "query": "grafana-azure-monitor-datasource", + "queryValue": "", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "type": "datasource" + }, + { + "current": {}, + "datasource": { + "type": "grafana-azure-monitor-datasource", + "uid": "${ds}" + }, + "definition": "", + "hide": 0, + "includeAll": false, + "label": "Subscription", + "multi": false, + "name": "sub", + "options": [], + "query": { + "azureLogAnalytics": { + "query": "", + "resources": [] + }, + "queryType": "Azure Subscriptions", + "refId": "A" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 5, + "type": "query" + } + ] + }, + "time": { + "from": "now-6h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "Azure / Infrastructure / Infrastructure Monitoring", + "uid": "azure-infrastructure-monitoring", + "version": 215 +}