Source code for rook.dashboard.plots.concurrency

import pandas as pd
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure

from ..models import concurrent_requests
from .base import PlotView

MILLISECS_PER_DAY = 60 * 60 * 24 * 1000


[docs] class ConcurrencyPlot(PlotView):
[docs] def data(self): cdf = concurrent_requests(self.df) # max concurrent per day gdf = cdf.groupby(pd.Grouper(key="time", freq="1D")).max() pdf = pd.DataFrame() pdf["time"] = gdf.index.values pdf["running"] = gdf.running.values return pdf
[docs] def plot(self): plot = figure( title="Max concurrent requests per day", tools="", toolbar_location=None, # x_axis_label="Day", x_axis_type="datetime", # y_axis_label="Jobs in parallel", sizing_mode="scale_width", height=100, ) plot.vbar( x="time", top="running", source=ColumnDataSource(self.data()), width=MILLISECS_PER_DAY * 0.7, color="orange", ) plot.y_range.start = 0 plot.axis.minor_tick_line_color = None return plot