# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. from grafanalib import core as g import defaults as d DNS_LATENCY_PANEL = [ d.Graph( title="In-cluster DNS latency SLI", targets=d.show_quantiles( ("quantile_over_time(" + "0.99, " + 'probes:dns_lookup_latency:histogram_quantile{{quantile="{quantile}"}}[24h])' ), legend="{{quantile}}", ), yAxes=g.single_y_axis(format=g.SECONDS_FORMAT), nullPointMode="null", ), d.Graph( title="DNS latency", targets=d.show_quantiles( 'probes:dns_lookup_latency:histogram_quantile{{quantile="{quantile}"}}', legend="{{quantile}}", ), yAxes=g.single_y_axis(format=g.SECONDS_FORMAT), nullPointMode="null", ), d.Graph(
NETWORK_PROGRAMMING_PANEL = [ d.Graph( title="SLI: Network programming latency", description=( "NetworkProgrammingLatency is defined as the time it took to " + "program the network - from the time the service or pod has " + "changed to the time the change was propagated and the proper " + "kube-proxy rules were synced. Exported for each endpoints object " + "that were part of the rules sync." ), targets=d.show_quantiles( ( "quantile_over_time(" + "0.99, " + 'kubeproxy:kubeproxy_network_programming_duration:histogram_quantile{{quantile="{quantile}"}}[24h])' ), legend="{{quantile}}", ), yAxes=g.single_y_axis(format=g.SECONDS_FORMAT), ), d.Graph( title="Network programming latency", description=( "NetworkProgrammingLatency is defined as the time it took to " + "program the network - from the time the service or pod has " + "changed to the time the change was propagated and the proper " + "kube-proxy rules were synced. Exported for each endpoints object " + "that were part of the rules sync." ), targets=d.show_quantiles(