import React from 'react'; import { Project } from './Project'; import StackdriverDatasource from '../datasource'; export interface Props { datasource: StackdriverDatasource; rawQuery: string; lastQueryError: string; } interface State { displayHelp: boolean; displaRawQuery: boolean; } export class Help extends React.Component { state: State = { displayHelp: false, displaRawQuery: false, }; onHelpClicked = () => { this.setState({ displayHelp: !this.state.displayHelp }); }; onRawQueryClicked = () => { this.setState({ displaRawQuery: !this.state.displaRawQuery }); }; shouldComponentUpdate(nextProps) { return nextProps.metricDescriptor !== null; } render() { const { displayHelp, displaRawQuery } = this.state; const { datasource, rawQuery, lastQueryError } = this.props; return ( <>
{rawQuery && (
)}
{rawQuery && displaRawQuery && (
{rawQuery}
)} {displayHelp && (
              
Alias Patterns
Format the legend keys any way you want by using alias patterns. Format the legend keys any way you want by using alias patterns.

Example: {`${'{{metricDescriptor.name}} - {{metricDescriptor.label.instance_name}}'}`}
Result:   cpu/usage_time - server1-europe-west-1

Patterns
  • {`${'{{metricDescriptor.type}}'}`} = metric type e.g. compute.googleapis.com/instance/cpu/usage_time
  • {`${'{{metricDescriptor.name}}'}`} = name part of metric e.g. instance/cpu/usage_time
  • {`${'{{metricDescriptor.service}}'}`} = service part of metric e.g. compute
  • {`${'{{metricDescriptor.label.label_name}}'}`} = Metric label metadata e.g. metricDescriptor.label.instance_name
  • {`${'{{resource.label.label_name}}'}`} = Resource label metadata e.g. resource.label.zone
  • {`${'{{bucket}}'}`} = bucket boundary for distribution metrics when using a heatmap in Grafana
)} {lastQueryError && (
{lastQueryError}
)} ); } }