github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/ui/src/views/cluster/containers/nodeGraphs/dashboards/queues.tsx (about)

     1  // Copyright 2018 The Cockroach Authors.
     2  //
     3  // Use of this software is governed by the Business Source License
     4  // included in the file licenses/BSL.txt.
     5  //
     6  // As of the Change Date specified in that file, in accordance with
     7  // the Business Source License, use of this software will be governed
     8  // by the Apache License, Version 2.0, included in the file
     9  // licenses/APL.txt.
    10  
    11  import React from "react";
    12  
    13  import { LineGraph } from "src/views/cluster/components/linegraph";
    14  import { Metric, Axis, AxisUnits } from "src/views/shared/components/metricQuery";
    15  
    16  import { GraphDashboardProps } from "./dashboardUtils";
    17  
    18  export default function (props: GraphDashboardProps) {
    19    const { storeSources } = props;
    20  
    21    return [
    22      <LineGraph title="Queue Processing Failures" sources={storeSources}>
    23        <Axis units={AxisUnits.Count} label="failures">
    24          <Metric name="cr.store.queue.gc.process.failure" title="GC" nonNegativeRate />
    25          <Metric name="cr.store.queue.replicagc.process.failure" title="Replica GC" nonNegativeRate />
    26          <Metric name="cr.store.queue.replicate.process.failure" title="Replication" nonNegativeRate />
    27          <Metric name="cr.store.queue.split.process.failure" title="Split" nonNegativeRate />
    28          <Metric name="cr.store.queue.consistency.process.failure" title="Consistency" nonNegativeRate />
    29          <Metric name="cr.store.queue.raftlog.process.failure" title="Raft Log" nonNegativeRate />
    30          <Metric name="cr.store.queue.raftsnapshot.process.failure" title="Raft Snapshot" nonNegativeRate />
    31          <Metric name="cr.store.queue.tsmaintenance.process.failure" title="Time Series Maintenance" nonNegativeRate />
    32          <Metric name="cr.store.compactor.compactions.failure" title="Compaction" nonNegativeRate />
    33        </Axis>
    34      </LineGraph>,
    35  
    36      <LineGraph title="Queue Processing Times" sources={storeSources}>
    37        <Axis units={AxisUnits.Duration} label="processing time">
    38          <Metric name="cr.store.queue.gc.processingnanos" title="GC" nonNegativeRate />
    39          <Metric name="cr.store.queue.replicagc.processingnanos" title="Replica GC" nonNegativeRate />
    40          <Metric name="cr.store.queue.replicate.processingnanos" title="Replication" nonNegativeRate />
    41          <Metric name="cr.store.queue.split.processingnanos" title="Split" nonNegativeRate />
    42          <Metric name="cr.store.queue.consistency.processingnanos" title="Consistency" nonNegativeRate />
    43          <Metric name="cr.store.queue.raftlog.processingnanos" title="Raft Log" nonNegativeRate />
    44          <Metric name="cr.store.queue.raftsnapshot.processingnanos" title="Raft Snapshot" nonNegativeRate />
    45          <Metric name="cr.store.queue.tsmaintenance.processingnanos" title="Time Series Maintenance" nonNegativeRate />
    46          <Metric name="cr.store.compactor.compactingnanos" title="Compaction" nonNegativeRate />
    47        </Axis>
    48      </LineGraph>,
    49  
    50      // TODO(mrtracy): The queues below should also have "processing
    51      // nanos" on the graph, but that has a time unit instead of a count
    52      // unit, and thus we need support for multi-axis graphs.
    53      <LineGraph title="Replica GC Queue" sources={storeSources}>
    54        <Axis units={AxisUnits.Count} label="actions">
    55          <Metric name="cr.store.queue.replicagc.process.success" title="Successful Actions / sec" nonNegativeRate />
    56          <Metric name="cr.store.queue.replicagc.pending" title="Pending Actions" downsampleMax />
    57          <Metric name="cr.store.queue.replicagc.removereplica" title="Replicas Removed / sec" nonNegativeRate />
    58        </Axis>
    59      </LineGraph>,
    60  
    61      <LineGraph title="Replication Queue" sources={storeSources}>
    62        <Axis units={AxisUnits.Count} label="actions">
    63          <Metric name="cr.store.queue.replicate.process.success" title="Successful Actions / sec" nonNegativeRate />
    64          <Metric name="cr.store.queue.replicate.pending" title="Pending Actions" />
    65          <Metric name="cr.store.queue.replicate.addreplica" title="Replicas Added / sec" nonNegativeRate />
    66          <Metric name="cr.store.queue.replicate.removereplica" title="Replicas Removed / sec" nonNegativeRate />
    67          <Metric name="cr.store.queue.replicate.removedeadreplica" title="Dead Replicas Removed / sec" nonNegativeRate />
    68          <Metric name="cr.store.queue.replicate.removelearnerreplica" title="Learner Replicas Removed / sec" nonNegativeRate />
    69          <Metric name="cr.store.queue.replicate.rebalancereplica" title="Replicas Rebalanced / sec" nonNegativeRate />
    70          <Metric name="cr.store.queue.replicate.transferlease" title="Leases Transferred / sec" nonNegativeRate />
    71          <Metric name="cr.store.queue.replicate.purgatory" title="Replicas in Purgatory" downsampleMax />
    72        </Axis>
    73      </LineGraph>,
    74  
    75      <LineGraph title="Split Queue" sources={storeSources}>
    76        <Axis units={AxisUnits.Count} label="actions">
    77          <Metric name="cr.store.queue.split.process.success" title="Successful Actions / sec" nonNegativeRate />
    78          <Metric name="cr.store.queue.split.pending" title="Pending Actions" downsampleMax />
    79        </Axis>
    80      </LineGraph>,
    81  
    82      <LineGraph title="Merge Queue" sources={storeSources}>
    83        <Axis units={AxisUnits.Count} label="actions">
    84          <Metric name="cr.store.queue.merge.process.success" title="Successful Actions / sec" nonNegativeRate />
    85          <Metric name="cr.store.queue.merge.pending" title="Pending Actions" downsampleMax />
    86        </Axis>
    87      </LineGraph>,
    88  
    89      <LineGraph title="GC Queue" sources={storeSources}>
    90        <Axis units={AxisUnits.Count} label="actions">
    91          <Metric name="cr.store.queue.gc.process.success" title="Successful Actions / sec" nonNegativeRate />
    92          <Metric name="cr.store.queue.gc.pending" title="Pending Actions" downsampleMax />
    93        </Axis>
    94      </LineGraph>,
    95  
    96      <LineGraph title="Raft Log Queue" sources={storeSources}>
    97        <Axis units={AxisUnits.Count} label="actions">
    98          <Metric name="cr.store.queue.raftlog.process.success" title="Successful Actions / sec" nonNegativeRate />
    99          <Metric name="cr.store.queue.raftlog.pending" title="Pending Actions" downsampleMax />
   100        </Axis>
   101      </LineGraph>,
   102  
   103      <LineGraph title="Raft Snapshot Queue" sources={storeSources}>
   104        <Axis units={AxisUnits.Count} label="actions">
   105          <Metric name="cr.store.queue.raftsnapshot.process.success" title="Successful Actions / sec" nonNegativeRate />
   106          <Metric name="cr.store.queue.raftsnapshot.pending" title="Pending Actions" downsampleMax />
   107        </Axis>
   108      </LineGraph>,
   109  
   110      <LineGraph title="Consistency Checker Queue" sources={storeSources}>
   111        <Axis units={AxisUnits.Count} label="actions">
   112          <Metric name="cr.store.queue.consistency.process.success" title="Successful Actions / sec" nonNegativeRate />
   113          <Metric name="cr.store.queue.consistency.pending" title="Pending Actions" downsampleMax />
   114        </Axis>
   115      </LineGraph>,
   116  
   117      <LineGraph title="Time Series Maintenance Queue" sources={storeSources}>
   118        <Axis units={AxisUnits.Count} label="actions">
   119          <Metric name="cr.store.queue.tsmaintenance.process.success" title="Successful Actions / sec" nonNegativeRate />
   120          <Metric name="cr.store.queue.tsmaintenance.pending" title="Pending Actions" downsampleMax />
   121        </Axis>
   122      </LineGraph>,
   123  
   124      <LineGraph
   125        title="Compaction Queue"
   126        sources={storeSources}
   127        tooltip={`The completed (or estimated) bytes of storage that were (or could be) reclaimed by forcing compactions.`}
   128      >
   129        <Axis units={AxisUnits.Bytes} label="bytes">
   130          <Metric name="cr.store.compactor.suggestionbytes.compacted" title="Bytes compacted / sec" nonNegativeRate />
   131          <Metric name="cr.store.compactor.suggestionbytes.queued" title="Queued bytes" downsampleMax />
   132        </Axis>
   133      </LineGraph>,
   134    ];
   135  }