2024-04-04 07:07:02 +00:00
|
|
|
{
|
|
|
|
"cells": [
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-06-11 07:22:17 +00:00
|
|
|
"execution_count": 1,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"# !pip install -r /mnt/hdd4T/TannedCung/OCR/sbt-idp/cope2n-api/requirements.txt\n",
|
|
|
|
"# !pip install matplotlib tqdm python-dotenv"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 2,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"# import os\n",
|
|
|
|
"# from dotenv import load_dotenv\n",
|
|
|
|
"\n",
|
|
|
|
"# load_dotenv(\"/mnt/hdd4T/TannedCung/OCR/sbt-idp/.env_prod\")"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 3,
|
2024-04-04 07:07:02 +00:00
|
|
|
"metadata": {},
|
2024-06-11 07:47:09 +00:00
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"name": "stderr",
|
|
|
|
"output_type": "stream",
|
|
|
|
"text": [
|
|
|
|
"/tmp/ipykernel_3211990/3052953344.py:1: DeprecationWarning: \n",
|
|
|
|
"Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0),\n",
|
|
|
|
"(to allow more performant data types, such as the Arrow string type, and better interoperability with other libraries)\n",
|
|
|
|
"but was not found to be installed on your system.\n",
|
|
|
|
"If this would cause problems for you,\n",
|
|
|
|
"please provide us feedback at https://github.com/pandas-dev/pandas/issues/54466\n",
|
|
|
|
" \n",
|
|
|
|
" import pandas as pd\n"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"ename": "ModuleNotFoundError",
|
|
|
|
"evalue": "No module named 'matplotlib'",
|
|
|
|
"output_type": "error",
|
|
|
|
"traceback": [
|
|
|
|
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
|
|
|
"\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)",
|
|
|
|
"Cell \u001b[0;32mIn[1], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mpandas\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mpd\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mmatplotlib\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpyplot\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mplt\u001b[39;00m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01msys\u001b[39;00m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mos\u001b[39;00m\n",
|
|
|
|
"\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'matplotlib'"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
],
|
2024-06-11 07:22:17 +00:00
|
|
|
"source": [
|
|
|
|
"# !export DB_ENGINE=django.db.backends.postgresql_psycopg2\n",
|
|
|
|
"# !export DB_SCHEMA=sbt_prod_20240422_1\n",
|
|
|
|
"# !export DB_USER=postgres\n",
|
|
|
|
"# !export DB_PASSWORD=TannedCung\n",
|
|
|
|
"# !export DB_HOST=db-sbt\n",
|
|
|
|
"# !export DB_PUBLIC_PORT=5432\n",
|
|
|
|
"# !export DB_INTERNAL_PORT=5432"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 4,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"name": "stderr",
|
|
|
|
"output_type": "stream",
|
|
|
|
"text": [
|
|
|
|
"/tmp/ipykernel_2597006/3052953344.py:1: DeprecationWarning: \n",
|
|
|
|
"Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0),\n",
|
|
|
|
"(to allow more performant data types, such as the Arrow string type, and better interoperability with other libraries)\n",
|
|
|
|
"but was not found to be installed on your system.\n",
|
|
|
|
"If this would cause problems for you,\n",
|
|
|
|
"please provide us feedback at https://github.com/pandas-dev/pandas/issues/54466\n",
|
|
|
|
" \n",
|
|
|
|
" import pandas as pd\n"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
],
|
2024-04-04 07:07:02 +00:00
|
|
|
"source": [
|
|
|
|
"import pandas as pd\n",
|
|
|
|
"import matplotlib.pyplot as plt\n",
|
|
|
|
"import sys\n",
|
|
|
|
"import os\n",
|
|
|
|
"import numpy as np\n",
|
|
|
|
"from tqdm import tqdm\n",
|
|
|
|
"import datetime\n",
|
|
|
|
"\n",
|
|
|
|
"current_dir = os.getcwd()\n",
|
|
|
|
"parent_dir = os.path.abspath(os.path.join(current_dir, os.pardir))\n",
|
|
|
|
"sys.path.append(parent_dir)\n",
|
|
|
|
"\n",
|
|
|
|
"import django\n",
|
|
|
|
"from django.db import models\n",
|
|
|
|
"from django.db.models import Q\n",
|
|
|
|
"from django.utils import timezone\n",
|
|
|
|
"from asgiref.sync import sync_to_async\n",
|
|
|
|
"from fwd import settings\n",
|
|
|
|
"os.environ.setdefault(\"DJANGO_SETTINGS_MODULE\", \"fwd.settings\")\n",
|
|
|
|
"os.environ[\"DJANGO_ALLOW_ASYNC_UNSAFE\"] = \"true\"\n",
|
|
|
|
"django.setup()\n",
|
|
|
|
"from fwd_api.models.SubscriptionRequest import SubscriptionRequest\n",
|
|
|
|
"from utils.processing_time import cost_profile, backend_cost\n"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-06-11 07:22:17 +00:00
|
|
|
"execution_count": 5,
|
2024-04-04 07:07:02 +00:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
2024-06-11 07:22:17 +00:00
|
|
|
"start_date_str = \"2024-04-01T00:00:00+0800\"\n",
|
|
|
|
"end_date_str = \"2024-06-01T00:00:00+0800\""
|
2024-04-04 07:07:02 +00:00
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-06-11 07:22:17 +00:00
|
|
|
"execution_count": 6,
|
2024-04-04 07:07:02 +00:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"@sync_to_async\n",
|
|
|
|
"def query_data(start_date_str, end_date_str):\n",
|
|
|
|
" base_query = Q(status=200)\n",
|
|
|
|
" start_date = timezone.datetime.strptime(start_date_str, '%Y-%m-%dT%H:%M:%S%z') # We care only about day precision only\n",
|
|
|
|
" end_date = timezone.datetime.strptime(end_date_str, '%Y-%m-%dT%H:%M:%S%z')\n",
|
|
|
|
" # start_date = timezone.make_aware(start_date)\n",
|
|
|
|
" # end_date = timezone.make_aware(end_date)\n",
|
2024-06-11 07:22:17 +00:00
|
|
|
" base_query &= Q(redemption_id__startswith=\"SG\")\n",
|
2024-04-04 07:07:02 +00:00
|
|
|
" base_query &= Q(created_at__range=(start_date, end_date))\n",
|
|
|
|
" subscription_requests = SubscriptionRequest.objects.filter(base_query).order_by('created_at')\n",
|
|
|
|
" return subscription_requests\n"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-06-11 07:22:17 +00:00
|
|
|
"execution_count": 7,
|
2024-04-04 07:07:02 +00:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"subscription_requests = await query_data(start_date_str, end_date_str)"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-06-11 07:22:17 +00:00
|
|
|
"execution_count": 8,
|
2024-04-04 07:07:02 +00:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"def process(requests):\n",
|
|
|
|
" result_by_file = {\"queue\": [],\n",
|
|
|
|
" \"inference\": [],\n",
|
|
|
|
" \"postprocessing\": [],\n",
|
|
|
|
" \"created\": []}\n",
|
|
|
|
" result_by_file_type = {\"imei\": {\"queue\": [],\n",
|
|
|
|
" \"inference\": [],\n",
|
|
|
|
" \"postprocessing\": [],\n",
|
|
|
|
" \"created\": []},\n",
|
|
|
|
" \"invoice\": {\"queue\": [],\n",
|
|
|
|
" \"inference\": [],\n",
|
|
|
|
" \"postprocessing\": [],\n",
|
|
|
|
" \"created\": []}}\n",
|
|
|
|
" result_by_request = {\"backend_cost\": [],\n",
|
|
|
|
" \"number_of_file\": [],\n",
|
|
|
|
" \"request_cost\": [],\n",
|
|
|
|
" \"created\": []}\n",
|
|
|
|
" for request in tqdm(requests):\n",
|
|
|
|
" if not request.ai_inference_profile:\n",
|
|
|
|
" continue\n",
|
|
|
|
" result_by_request[\"created\"].append(request.created_at.timestamp())\n",
|
|
|
|
" result_by_request[\"number_of_file\"].append(request.pages)\n",
|
|
|
|
" result_by_request[\"backend_cost\"].append(backend_cost(request.created_at, request.ai_inference_start_time))\n",
|
|
|
|
" result_by_request[\"request_cost\"].append(request.ai_inference_time)\n",
|
|
|
|
"\n",
|
|
|
|
" for key in request.ai_inference_profile.keys():\n",
|
|
|
|
" profile = cost_profile(request.ai_inference_start_time, request.ai_inference_profile[key])\n",
|
|
|
|
" result_by_file[\"queue\"].append(profile[\"queue\"])\n",
|
|
|
|
" result_by_file[\"inference\"].append(profile[\"inference\"])\n",
|
|
|
|
" result_by_file[\"postprocessing\"].append(profile[\"postprocessing\"])\n",
|
|
|
|
" result_by_file[\"created\"].append(request.ai_inference_start_time)\n",
|
|
|
|
" if key.split(\"_\")[0] in [\"imei\", \"invoice\"]:\n",
|
|
|
|
" result_by_file_type[key.split(\"_\")[0]][\"queue\"].append(profile[\"queue\"])\n",
|
|
|
|
" result_by_file_type[key.split(\"_\")[0]][\"inference\"].append(profile[\"inference\"])\n",
|
|
|
|
" result_by_file_type[key.split(\"_\")[0]][\"postprocessing\"].append(profile[\"postprocessing\"])\n",
|
|
|
|
" result_by_file_type[key.split(\"_\")[0]][\"created\"].append(request.ai_inference_start_time)\n",
|
|
|
|
"\n",
|
|
|
|
" \n",
|
|
|
|
" return result_by_request, result_by_file, result_by_file_type\n",
|
|
|
|
"\n",
|
|
|
|
" "
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-06-11 07:22:17 +00:00
|
|
|
"execution_count": 9,
|
2024-04-04 07:07:02 +00:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"name": "stderr",
|
|
|
|
"output_type": "stream",
|
|
|
|
"text": [
|
2024-06-11 07:22:17 +00:00
|
|
|
"100%|██████████| 9037/9037 [00:00<00:00, 166939.40it/s]\n"
|
2024-04-04 07:07:02 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"result_by_request, result_by_file, result_by_file_type = process(subscription_requests)"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-06-11 07:22:17 +00:00
|
|
|
"execution_count": 10,
|
2024-04-04 07:07:02 +00:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"frame_by_file = pd.DataFrame(result_by_file)\n",
|
|
|
|
"frame_by_request = pd.DataFrame(result_by_request)\n",
|
|
|
|
"frame_by_imei = pd.DataFrame(result_by_file_type[\"imei\"])\n",
|
|
|
|
"frame_by_invoice = pd.DataFrame(result_by_file_type[\"invoice\"])"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-06-11 07:22:17 +00:00
|
|
|
"execution_count": 11,
|
2024-04-04 07:07:02 +00:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"frame_by_file.set_index('created', inplace=True)\n",
|
|
|
|
"frame_by_request.set_index('created', inplace=True)\n",
|
|
|
|
"frame_by_imei.set_index('created', inplace=True)\n",
|
|
|
|
"frame_by_invoice.set_index('created', inplace=True)"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-06-11 07:22:17 +00:00
|
|
|
"execution_count": 12,
|
2024-04-04 07:07:02 +00:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"def to_datetime(timestamp):\n",
|
|
|
|
" # Convert the timestamp to a datetime object\n",
|
|
|
|
" dt = datetime.datetime.fromtimestamp(timestamp)\n",
|
|
|
|
"\n",
|
|
|
|
" # Format the datetime object as YYYY-MM-DD\n",
|
|
|
|
" formatted_date = dt.strftime('%Y-%m-%d')\n",
|
|
|
|
" return formatted_date"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-06-11 07:22:17 +00:00
|
|
|
"execution_count": 13,
|
2024-04-04 07:07:02 +00:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"def plot_trend(x, y, title, outliner_threah = 95, num_bins=200):\n",
|
|
|
|
" y = y[x>=0]\n",
|
|
|
|
" x = x[x>=0]\n",
|
|
|
|
" if outliner_threah:\n",
|
|
|
|
" # Calculate z-scores\n",
|
|
|
|
" z_scores = np.abs((y - np.mean(y)) / np.std(y))\n",
|
|
|
|
"\n",
|
|
|
|
" # Determine the threshold based on the desired percentage of inliers\n",
|
|
|
|
" threshold = np.percentile(z_scores, outliner_threah)\n",
|
|
|
|
"\n",
|
|
|
|
" # Filter out outliers\n",
|
|
|
|
" filtered_x = x[z_scores <= threshold]\n",
|
|
|
|
" filtered_y = y[z_scores <= threshold]\n",
|
|
|
|
" else:\n",
|
|
|
|
" filtered_x = x\n",
|
|
|
|
" filtered_y = y\n",
|
|
|
|
"\n",
|
|
|
|
" # Compute the histogram\n",
|
|
|
|
" if num_bins:\n",
|
|
|
|
" hist, bin_edges = np.histogram(filtered_x, bins=num_bins)\n",
|
|
|
|
" # Compute the average value for each bin\n",
|
|
|
|
" bin_avg = np.zeros(num_bins)\n",
|
|
|
|
" for i in range(num_bins):\n",
|
|
|
|
" bin_values = filtered_y[(filtered_x >= bin_edges[i]) & (filtered_x < bin_edges[i + 1])]\n",
|
|
|
|
" bin_avg[i] = np.mean(bin_values)\n",
|
|
|
|
" nan_mask = np.isnan(bin_avg)\n",
|
|
|
|
" edges = bin_edges[:-1][~nan_mask]\n",
|
|
|
|
" bin_avg = bin_avg[~nan_mask]\n",
|
|
|
|
" else:\n",
|
|
|
|
" bin_avg = filtered_y\n",
|
|
|
|
" edges = filtered_x\n",
|
|
|
|
"\n",
|
|
|
|
"\n",
|
|
|
|
" average = np.mean(bin_avg)\n",
|
|
|
|
" date_time = []\n",
|
|
|
|
" for e in edges:\n",
|
|
|
|
" date_time.append(to_datetime(e))\n",
|
|
|
|
" plt.plot(edges, bin_avg)\n",
|
|
|
|
" # plt.plot(filtered_x, filtered_y)\n",
|
|
|
|
" plt.axhline(average, color='red', linestyle='--', label='Average')\n",
|
|
|
|
" plt.text(x[-1], average, f'Avg: {average:.2f}', ha='right', va='center')\n",
|
|
|
|
" plt.xlabel('Timestamp')\n",
|
|
|
|
" plt.ylabel('Processing Time (seconds)')\n",
|
|
|
|
" plt.title(title)\n",
|
|
|
|
" plt.xticks(rotation=45)\n",
|
|
|
|
" plt.show()"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-06-11 07:22:17 +00:00
|
|
|
"execution_count": 14,
|
2024-04-04 07:07:02 +00:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
2024-06-11 07:22:17 +00:00
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHfCAYAAACs1/ncAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAADJX0lEQVR4nOydd5xTVfr/Pzc90weGGWCoAtKkCYJgAQVFxbV/LdgWXXddxcauYtkVRVesiK6FXevqrortZ0FFAQHFhoqAhd7b9D6Tnvv74+ace+7NzUwyk0ySmef9es0LJnOTnNzce85zPk+TZFmWQRAEQRAE0UEwJXsABEEQBEEQ8YSMG4IgCIIgOhRk3BAEQRAE0aEg44YgCIIgiA4FGTcEQRAEQXQoyLghCIIgCKJDQcYNQRAEQRAdCjJuCIIgCILoUJBxQxAEQRBEh4KMG4IgNPTr1w9nnnlmsofBkSQJ99xzT7KH0eG55557IElSsodBEHGBjBuCSEFefvllSJKk+SksLMRJJ52ETz75JNnD6/QcOnQI99xzDzZs2NDisfrvMdLP6tWrEz5ugugsWJI9AIIgIjN//nz0798fsiyjtLQUL7/8Ms444wx8+OGHKaWudDYOHTqEe++9F/369cPo0aObPfbVV1/V/P7KK69g+fLlYY8PHTo03sMkiE4LGTcEkcKcfvrpGDduHP/96quvRlFREV5//XUybtKEyy67TPP7t99+i+XLl4c9rqepqQkZGRmJHBpBdFjILUUQaUReXh6cTicsFu2+5NFHH8WkSZPQtWtXOJ1OjB07Fm+//bbha/z3v//F+PHjkZGRgfz8fJx44on47LPPmn3f//znP7BYLLj11lv5Y9999x1OO+005ObmIiMjA5MnT8ZXX32leR6L49ixYwd+//vfIy8vD7m5uZg1axaampo0x3o8Htxyyy3o1q0bsrOzcdZZZ+HAgQNRnxu324177rkHRx55JBwOB3r06IHzzjsPO3fu5Mc0NjbiL3/5C3r37g273Y7Bgwfj0UcfhSzLmtdavnw5jj/+eOTl5SErKwuDBw/GnXfeCQBYvXo1jjnmGADArFmzuFvp5ZdfjnqseqZMmYKjjjoKP/74I0488URkZGTw9/N4PJg3bx4GDhwIu92O3r1747bbboPH49G8hiRJmD17Nt577z0cddRRsNvtGD58OJYtWxb2fmvXrsUxxxwDh8OBAQMG4F//+lerx04QqQgpNwSRwtTW1qKiogKyLKOsrAz//Oc/0dDQELbrf+KJJ3DWWWfh0ksvhdfrxRtvvIH/+7//w9KlSzFjxgx+3L333ot77rkHkyZNwvz582Gz2fDdd9/h888/x6mnnmo4hn//+9+49tprceedd+L+++8HAHz++ec4/fTTMXbsWMybNw8mkwkvvfQSTj75ZHz55ZcYP3685jUuvPBC9O/fHwsWLMD69evx/PPPo7CwEA899BA/5g9/+AP++9//YubMmZg0aRI+//xzzdibIxAI4Mwzz8TKlStx8cUX46abbkJ9fT2WL1+OX375BQMGDIAsyzjrrLOwatUqXH311Rg9ejQ+/fRT3HrrrTh48CAef/xxAMCvv/6KM888EyNHjsT8+fNht9uxY8cObrgNHToU8+fPx913340//vGPOOGEEwAAkyZNimqskaisrMTpp5+Oiy++GJdddhmKiooQDAZx1llnYe3atfjjH/+IoUOH4ueff8bjjz+Obdu24b333tO8xtq1a/Huu+/iuuuuQ3Z2Np588kmcf/752LdvH7p27QoA+Pnnn3HqqaeiW7duuOeee+D3+zFv3jwUFRW1afwEkVLIBEGkHC+99JIMIOzHbrfLL7/8ctjxTU1Nmt+9Xq981FFHySeffDJ/bPv27bLJZJLPPfdcORAIaI4PBoP8/3379pVnzJghy7IsP/HEE7IkSfJ9992nOXbQoEHy9OnTNc9ramqS+/fvL59yyin8sXnz5skA5Kuuukrzfueee67ctWtX/vuGDRtkAPJ1112nOW7mzJkyAHnevHkRz5Usy/KLL74oA5AXLlwY9jc2xvfee08GIN9///2av19wwQWyJEnyjh07ZFmW5ccff1wGIJeXl0d8v++//14GIL/00kvNjsuI66+/XtZPvZMnT5YByIsXL9Y8/uqrr8omk0n+8ssvNY8vXrxYBiB/9dVX/DEAss1m459DlmV548aNMgD5n//8J3/snHPOkR0Oh7x3717+2G+//SabzeawcRFEukJuKYJIYZ5++mksX74cy5cvx3//+1+cdNJJ+MMf/oB3331Xc5zT6eT/r66uRm1tLU444QSsX7+eP/7ee+8hGAzi7rvvhsmkvfWNUoAffvhh3HTTTXjooYfwt7/9jT++YcMGbN++HTNnzkRlZSUqKipQUVGBxsZGTJ06FV988QWCwaDmta699lrN7yeccAIqKytRV1cHAPj4448BADfeeKPmuJtvvrmlUwQAeOedd1BQUIAbbrgh7G/ss3388ccwm81h7/GXv/wFsizzLLS8vDwAwPvvvx/2ORKJ3W7HrFmzNI+99dZbGDp0KIYMGcLPc0VFBU4++WQAwKpVqzTHT5s2DQMGDOC/jxw5Ejk5Odi1axcAReH69NNPcc4556BPnz78uKFDh2L69OmJ+mgE0e6QW4ogUpjx48drAoovueQSjBkzBrNnz8aZZ54Jm80GAFi6dCnuv/9+bNiwQROLIRotO3fuhMlkwrBhw1p83zVr1uCjjz7C3LlzNXE2ALB9+3YAwJVXXhnx+bW1tcjPz+e/iwspAP636upq5OTkYO/evTCZTJqFGQAGDx7c4lgB5bMNHjw4LBZJZO/evejZsyeys7M1j7Mspb179wIALrroIjz//PP4wx/+gNtvvx1Tp07FeeedhwsuuCDMKIwnxcXF/PtkbN++HZs3b0a3bt0Mn1NWVqb5XX+eAeVcV1dXAwDKy8vhcrkwaNCgsOMGDx7MjUyCSHfIuCGINMJkMuGkk07CE088ge3bt2P48OH48ssvcdZZZ+HEE0/EM888gx49esBqteKll17Ca6+91qr3GT58OGpqavDqq6/iT3/6E/r378//xtSMRx55JGIadFZWluZ3s9lseJysC+RNBZxOJ7744gusWrUKH330EZYtW4YlS5bg5JNPxmeffRbxs8TjffUEg0GMGDECCxcuNHxO7969Nb+n03kmiERCxg1BpBl+vx8A0NDQAEBxyTgcDnz66aew2+38uJdeeknzvAEDBiAYDOK3335rsTZLQUEB3n77bRx//PGYOnUq1q5di549e/LXAYCcnBxMmzYtLp+pb9++CAaDXIFhbN26NarnDxgwAN999x18Ph+sVmvE91ixYgXq6+s16s2WLVv43xkmkwlTp07F1KlTsXDhQjzwwAO46667sGrVKkybNq3dKvkOGDAAGzduxNSpU+Pynt26dYPT6eTqm0i055og0gGKuSGINMLn8+Gzzz6DzWbj7hSz2QxJkhAIBPhxe/bsCcukOeecc2AymTB//vywWBKjnX2vXr2wYsUKuFwunHLKKaisrAQAjB07FgMGDMCjjz7KDSyR8vLymD/X6aefDgB48sknNY8vWrQoqueff/75qKiowFNPPRX2N/bZzjjjDAQCgbBjHn/8cUiSxMdQVVUV9hrMGGQuv8zMTABATU1NVONrLRdeeCEOHjyI5557LuxvLpcLjY2NMb2e2WzG9OnT8d5772Hfvn388c2bN+PTTz9t83gJIlUg5YYgUphPPvmEKwtlZWV47bXXsH37dtx+++3IyckBAMyYMQMLFy7EaaedhpkzZ6KsrAxPP/00Bg4ciE2bNvHXGjhwIO666y7cd999OOGEE3DeeefBbrfj+++/R8+ePbFgwYKw9x84cCA+++wzTJkyBdOnT8fnn3+OnJwcPP/88zj99NMxfPhwzJo1C8XFxTh48CBWrVqFnJwcfPjhhzF9ztGjR+OSSy7BM888g9raWkyaNAkrV67Ejh07onr+FVdcgVdeeQVz5szBunXrcMIJJ6CxsRErVqzAddddh7PPPhu/+93vcNJJJ+Guu+7Cnj1
|
2024-04-04 07:07:02 +00:00
|
|
|
"text/plain": [
|
|
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "display_data"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"plot_trend(frame_by_request.index, frame_by_request[\"backend_cost\"], \"Backend cost Trend\")\n"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-06-11 07:22:17 +00:00
|
|
|
"execution_count": 15,
|
2024-04-04 07:07:02 +00:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
2024-06-11 07:22:17 +00:00
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHfCAYAAAC4Qmc9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAADHZ0lEQVR4nOydd5hTZfbHv+nJZDrTh6ErvQmiFAUFAXVV7HWRXbugsv7Wgl3RBV1dy7KLDUVdsQC2ZQVEBBRFQFCq9A7Th+mTfn9/3Lxv3ntzk0lmMkw7n+eZBya5uXmTSe793nO+5xydJEkSCIIgCIIg2hH65l4AQRAEQRDEqYYEEEEQBEEQ7Q4SQARBEARBtDtIABEEQRAE0e4gAUQQBEEQRLuDBBBBEARBEO0OEkAEQRAEQbQ7SAARBEEQBNHuIAFEEARBEES7gwQQQRAEUS9jxozBmDFjmnsZBBEzSAARRCtk/vz50Ol0/MdoNCI3NxdTpkzB8ePHm3t5TcLOnTvx1FNP4dChQ829lHr56aef8NRTT6G8vDzsdqtXr1b8HcP9EAQRW4zNvQCCIBrOM888g65du8LhcODnn3/G/PnzsXbtWmzfvh1Wq7W5lxdTdu7ciaeffhpjxoxBly5dmns5Yfnpp5/w9NNPY8qUKUhOTg65Xe/evfHBBx8obpsxYwbi4+Px6KOPNvEqCaJ9QwKIIFoxF154IYYOHQoAuPXWW5GWlobnn38eX331Fa655ppmXh1RH5mZmbjpppsUt82ePRtpaWlBt4v4fD64XK42J3IJ4lRCKTCCaEOcc845AID9+/crbt+1axeuuuoqpKamwmq1YujQofjqq6+CHr9jxw6cf/75sNls6NixI5599lm888470Ol0itSTTqfDU089FfT4Ll26YMqUKYrbysvLMX36dOTl5cFisaBHjx54/vnn4fP5FNt9/PHHGDJkCBISEpCYmIj+/fvj1VdfBSCn/K6++moAwHnnncfTQqtXr474vTl+/DhuueUW5OTkwGKxoGvXrrjrrrvgcrn4NgcOHMDVV1+N1NRUxMXF4eyzz8b//ve/oH3985//RN++fREXF4eUlBQMHToUCxYsAAA89dRTeOCBBwAAXbt25WttTOpOp9Nh2rRp+PDDD9G3b19YLBYsW7aMv64///nPyMzMhMViQd++ffHOO+8oHs9SbZ9++imee+45dOzYEVarFWPHjsW+ffuCnu/NN99E9+7dYbPZMGzYMPzwww8NXjtBtFQoAkQQbQh2kk1JSeG37dixAyNHjkRubi4efvhh2O12fPrpp5g0aRIWL16Myy+/HABQUFCA8847Dx6Ph2/35ptvwmazNXg9tbW1GD16NI4fP4477rgDnTp1wk8//YQZM2YgPz8fr7zyCgBgxYoVuP766zF27Fg8//zzAIDff/8dP/74I+677z6ce+65uPfee/Haa6/hkUceQe/evQGA/1sfJ06cwLBhw1BeXo7bb78dvXr1wvHjx7Fo0SLU1tbCbDajsLAQI0aMQG1tLe6991506NAB7733Hi699FIsWrSIv09vvfUW7r33Xlx11VW477774HA4sHXrVqxfvx433HADrrjiCuzZswcfffQRXn75ZaSlpQEA0tPTG/w+AsB3332HTz/9FNOmTUNaWhq6dOmCwsJCnH322VwgpaenY+nSpbjllltQWVmJ6dOnK/Yxe/Zs6PV6/PWvf0VFRQVeeOEF3HjjjVi/fj3fZt68ebjjjjswYsQITJ8+HQcOHMCll16K1NRU5OXlNeo1EESLQiIIotXx7rvvSgCkb7/9ViouLpaOHj0qLVq0SEpPT5csFot09OhRvu3YsWOl/v37Sw6Hg9/m8/mkESNGSKeddhq/bfr06RIAaf369fy2oqIiKSkpSQIgHTx4kN8OQHryySeD1tW5c2fp5ptv5r/PnDlTstvt0p49exTbPfzww5LBYJCOHDkiSZIk3XfffVJiYqLk8XhCvuaFCxdKAKRVq1bV9/YEMXnyZEmv10sbN24Mus/n80mSFHj9P/zwA7+vqqpK6tq1q9SlSxfJ6/VKkiRJl112mdS3b9+wz/f3v/896D2LlL59+0qjR49W3AZA0uv10o4dOxS333LLLVJ2drZUUlKiuP26666TkpKSpNraWkmSJGnVqlUSAKl3796S0+nk27366qsSAGnbtm2SJEmSy+WSMjIypEGDBim2e/PNNyUAQesiiNYMpcAIohUzbtw4pKenIy8vD1dddRXsdju++uordOzYEQBQVlaG7777Dtdccw2qqqpQUlKCkpISlJaWYsKECdi7dy+vGvv6669x9tlnY9iwYXz/6enpuPHGGxu8voULF+Kcc85BSkoKf+6SkhKMGzcOXq8X33//PQAgOTkZNTU1WLFiRSPeDW18Ph+++OILXHLJJdwvJcIqrL7++msMGzYMo0aN4vfFx8fj9ttvx6FDh7Bz506+1mPHjmHjxo0xX2s4Ro8ejT59+vDfJUnC4sWLcckll0CSJMX7O2HCBFRUVGDz5s2KffzpT3+C2Wzmv7OU6YEDBwAAv/zyC4qKinDnnXcqtpsyZQqSkpKa8uURxCmHUmAE0Yr517/+hdNPPx0VFRV455138P3338NisfD79+3bB0mS8Pjjj+Pxxx/X3EdRURFyc3Nx+PBhnHXWWUH39+zZs8Hr27t3L7Zu3Roy/VNUVAQAuPvuu/Hpp5/iwgsvRG5uLsaPH49rrrkGEydObPBzM4qLi1FZWYl+/fqF3S7U62dptsOHD6Nfv3546KGH8O2332LYsGHo0aMHxo8fjxtuuAEjR45s9FrD0bVrV8XvxcXFKC8vx5tvvok333xT8zHs/WV06tRJ8TtLlZ48eRKA/BoB4LTTTlNsZzKZ0K1bt4YvniBaICSACKIVM2zYMB7VmDRpEkaNGoUbbrgBu3fvRnx8PDca//Wvf8WECRM099GjR4+Yrcfr9Sp+9/l8uOCCC/Dggw9qbn/66acDADIyMvDbb79h+fLlWLp0KZYuXYp3330XkydPxnvvvRez9cWC3r17Y/fu3ViyZAmWLVuGxYsX49///jeeeOIJPP300032vGovFvvb3nTTTbj55ps1HzNgwADF7waDQXM7SZJisEKCaF2QACKINoLBYMCsWbNw3nnnYc6cOXj44Yf5VbvJZMK4cePCPr5z587Yu3dv0O27d+8Oui0lJSWoyZ/L5UJ+fr7itu7du6O6urre5wYAs9mMSy65BJdccgl8Ph/uvvtuvPHGG3j88cfRo0ePBjcDTE9PR2JiIrZv3x52u86dO2u+1l27dvH7GXa7Hddeey2uvfZauFwuXHHFFXjuuecwY8YMWK3WU9K4MD09HQkJCfB6vRG9v5HAXuPevXtx/vnn89vdbjcOHjyIgQMHxuR5CKIlQB4ggmhDjBkzBsOGDcMrr7wCh8OBjIwMjBkzBm+88UaQOAHkNArjoosuws8//4wNGzYo7v/www+DHte9e3fu32G8+eabQRGga665BuvWrcPy5cuD9lFeXg6PxwMAKC0tVdyn1+t59MLpdAKQRQd7XDTo9XpMmjQJ//3vf/HLL78E3c+iHxdddBE2bNiAdevW8ftqamrw5ptvokuXLtx/o16r2WxGnz59IEkS3G53o9YaDQaDAVdeeSUWL16sKe7Ev22kDB06FOnp6Xj99dcV7QHmz5/fpK+FIJoDigARRBvjgQcewNVXX4358+fjzjvvxL/+9S+MGjUK/fv3x2233YZu3bqhsLAQ69atw7Fjx7BlyxYAwIMPPogPPvgAEydOxH333cfL4Dt37oytW7cqnuPWW2/FnXfeiSuvvBIXXHABtmzZguXLl/OSb3EtX331Ff7whz9gypQpGDJkCGpqarBt2zYsWrQIhw4dQlpaGm699VaUlZXh/PPPR8eOHXH48GH885//xKBBg7gHZ9CgQTAYDHj++edRUVEBi8WC888/HxkZGfW+J3/729/wzTffYPTo0bj99tvRu3dv5OfnY+HChVi7di2Sk5Px8MMP46OPPsKFF16Ie++9F6mpqXjvvfdw8OBBLF68GHq9fL04fvx
|
2024-04-04 07:07:02 +00:00
|
|
|
"text/plain": [
|
|
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "display_data"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"plot_trend(frame_by_request.index, frame_by_request[\"request_cost\"], \"Request_cost Trend\")\n"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-06-11 07:22:17 +00:00
|
|
|
"execution_count": 27,
|
2024-04-04 07:07:02 +00:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
2024-06-11 07:22:17 +00:00
|
|
|
"image/png": "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
|
2024-04-04 07:07:02 +00:00
|
|
|
"text/plain": [
|
|
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "display_data"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
2024-06-11 07:22:17 +00:00
|
|
|
"plot_trend(frame_by_request.index, frame_by_request[\"number_of_file\"], \"Files in a request Trend\", outliner_threah=None, num_bins=30)\n"
|
2024-04-04 07:07:02 +00:00
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-06-11 07:22:17 +00:00
|
|
|
"execution_count": 17,
|
2024-04-04 07:07:02 +00:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
2024-06-11 07:22:17 +00:00
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAloAAAHfCAYAAACIznYcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAD1B0lEQVR4nOydd5gT1frHv+nZzXZgG11A6aAgCCKgcl0EFRQ7CnKxXAUFsV2xK4piARWvXHuDC6KI/hBQpIoiXWkiRZa+uyzbW+r8/pickzOTSTbZTbbA+3mefSCTk8nJZDLnne/7Pe/RSZIkgSAIgiAIgog4+vruAEEQBEEQxJkKBVoEQRAEQRBRggItgiAIgiCIKEGBFkEQBEEQRJSgQIsgCIIgCCJKUKBFEARBEAQRJSjQIgiCIAiCiBIUaBEEQRAEQUQJCrQIgiAIgiCiBAVaBEEQjRSdTodnn322vrvRIFmzZg10Oh3WrFlT310hznIo0CKIM5z//Oc/0Ol06Nu3b8A2Op0OEydOrMNehc7SpUspmGhADB48GDqdrto/+s4IQsZY3x0gCCK6zJ07F23atMGmTZtw4MABtG/fvr67FBZLly7FO++8QwO3BpWVlTAa6/Yy/sQTT+DOO+/kjzdv3oy33noLU6dORadOnfj27t2712m/CKKhQoEWQZzBHDp0CL/++isWLVqEe+65B3PnzsUzzzxT391qEJSXl8Nms9V3N2qF1Wqt8/f8xz/+4deHt956C//4xz8wePDggK87E443QdQESh0SxBnM3LlzkZycjOHDh+P666/H3Llza7U/lmKcO3cuzjvvPFitVvTq1Qvr1q3za7t9+3ZceeWVSEhIQFxcHC6//HL89ttvijZOpxPPPfccOnToAKvViiZNmmDAgAFYsWIFAOCOO+7AO++8w9+b/QFAdnY2dDodXnvtNcycOROtW7dGTEwMBg0ahF27dine54477kBcXBwOHjyIYcOGIT4+HqNHjwYgBwAPPfQQWrZsCYvFgvPOOw+vvfYaJEny+0xffPEF+vTpg9jYWCQnJ2PgwIH48ccfFW2WLVuGSy65BDabDfHx8Rg+fDh2796taJOTk4Nx48ahRYsWsFgsyMjIwIgRI5Cdnc3bbNmyBVlZWWjatCliYmLQtm1b/POf//T7PkSl79lnn4VOp8OBAwdwxx13ICkpCYmJiRg3bhwqKioUr62srMQDDzyApk2bIj4+Htdccw2OHz8ekbQf68eePXtw6623Ijk5GQMGDFAcx169eiEmJgYpKSm4+eabcfToUcU+Bg8ejK5du2LPnj249NJLERsbi+bNm2PGjBl+73fs2DGMHDkSNpsNqampePDBB2G322v1GQgiUpCiRRBnMHPnzsV1110Hs9mMW265Be+++y42b96MCy+8sMb7XLt2LRYsWIAHHngAFosF//nPfzB06FBs2rQJXbt2BQDs3r0bl1xyCRISEvDoo4/CZDLhv//9LwYPHoy1a9dyv9izzz6L6dOn484770SfPn1QUlKCLVu2YNu2bfjHP/6Be+65BydOnMCKFSvw+eefa/bns88+Q2lpKSZMmICqqiq8+eabuOyyy7Bz506kpaXxdi6XC1lZWRgwYABee+01xMbGQpIkXHPNNVi9ejXGjx+Pnj174ocffsAjjzyC48ePY+bMmfz1zz33HJ599ln0798fzz//PMxmMzZu3IhVq1bhiiuuAAB8/vnnGDt2LLKysvDKK6+goqIC7777LgYMGIDt27ejTZs2AIBRo0Zh9+7duP/++9GmTRvk5eVhxYoVOHLkCH98xRVXoFmzZvj3v/+NpKQkZGdnY9GiRSF9RzfeeCPatm2L6dOnY9u2bfjggw+QmpqKV155hbe544478OWXX+L222/HRRddhLVr12L48OGhnwghcMMNN6BDhw546aWXeOD64osv4qmnnsKNN96IO++8E6dOncLbb7+NgQMHYvv27UhKSuKvLywsxNChQ3HdddfhxhtvxFdffYXHHnsM3bp1w5VXXglADhgvv/xyHDlyBA888AAyMzPx+eefY9WqVRH9LARRYySCIM5ItmzZIgGQVqxYIUmSJHk8HqlFixbSpEmT/NoCkCZMmFDtPgFIAKQtW7bwbYcPH5asVqt07bXX8m0jR46UzGazdPDgQb7txIkTUnx8vDRw4EC+rUePHtLw4cODvueECRMkrUvVoUOHJABSTEyMdOzYMb5948aNEgDpwQcf5NvGjh0rAZD+/e9/K/axePFiCYA0bdo0xfbrr79e0ul00oEDByRJkqT9+/dLer1euvbaayW3261o6/F4JEmSpNLSUikpKUm66667FM/n5ORIiYmJfHthYaEEQHr11VcDfuZvvvlGAiBt3rw5YBtJkr+PZ555hj9+5plnJADSP//5T0W7a6+9VmrSpAl/vHXrVgmANHnyZEW7O+64w2+f1bFw4UIJgLR69Wq/ftxyyy2KttnZ2ZLBYJBefPFFxfadO3dKRqNRsX3QoEESAOmzzz7j2+x2u5Seni6NGjWKb5s1a5YEQPryyy/5tvLycql9+/Z+/SKI+oBShwRxhjJ37lykpaXh0ksvBSCnmW666SbMnz8fbre7xvvt168fevXqxR+3atUKI0aMwA8//AC32w23240ff/wRI0eOxDnnnMPbZWRk4NZbb8X69etRUlICAEhKSsLu3buxf//+Gvdn5MiRaN68OX/cp08f9O3bF0uXLvVre++99yoeL126FAaDAQ888IBi+0MPPQRJkrBs2TIAwOLFi+HxePD0009Dr1deNlkqc8WKFSgqKsItt9yC/Px8/mcwGNC3b1+sXr0aABATEwOz2Yw1a9agsLBQ8zMxVWfJkiVwOp1hHA2Zf/3rX4rHl1xyCU6fPs2P+/LlywEA9913n6Ld/fffH/Z7hdOPRYsWwePx4MYbb1Qco/T0dHTo0IEfI0ZcXBxuu+02/thsNqNPnz74+++/+balS5ciIyMD119/Pd8WGxuLu+++O6KfhSBqCgVaBHEG4na7MX/+fFx66aU4dOgQDhw4gAMHDqBv377Izc3FypUra7zvDh06+G0799xzUVFRgVOnTuHUqVOoqKjAeeed59euU6dO8Hg83I/z/PPPo6ioCOeeey66deuGRx55BDt27IhIf0S/EwAYjUa0aNFCse3w4cPIzMxEfHy8Xz/Z8wBw8OBB6PV6dO7cOWA/WLB42WWXoVmzZoq/H3/8EXl5eQAAi8WCV155BcuWLUNaWhoGDhyIGTNmICcnh+9r0KBBGDVqFJ577jk0bdoUI0aMwMcffxyy76hVq1aKx8nJyQDAA7vDhw9Dr9ejbdu2inaRnpGq3v/+/fshSRI6dOjgd4z+/PNPfowYLVq04IGs+FnEAPXw4cNo3769Xzut848g6gPyaBHEGciqVatw8uRJzJ8/H/Pnz/d7fu7cudxXVJ8MHDgQBw8exLfffosff/wRH3zwAWbOnIk5c+YoSghEAovF4qdGRRKPxwNA9mmlp6f7PS+WYZg8eTKuvvpqLF68GD/88AOeeuopTJ8+HatWrcL5558PnU6Hr776Cr/99hv+7//+Dz/88AP++c9/4vXXX8dvv/2GuLi4oH0xGAya2yUNg380iYmJUTz2eDzQ6XRYtmyZZh/Vn6uhfA6CqA0UaBHEGcjcuXORmprKZ+yJLFq0CN988w3mzJnjNxCGglaab9++fYiNjUWzZs0AyKmbv/76y6/d3r17odfr0bJlS74tJSUF48aNw7hx41BWVoaBAwfi2Wef5YGWWqkItT/MeB6M1q1b46effkJpaalC1dq7dy9/HgDatWsHj8eDPXv2oGfPnpr7ateuHQAgNTUVQ4YMqfa927Vrh4ceeggPPfQQ9u/fj549e+L111/HF198wdtcdNFFuOiii/Diiy9i3rx5GD16NObPn1/rILR169bweDw4dOiQQhE8cOBArfZbHe3atYMkSWjbti3OPffciOyzdevW2LVrFyRJUpwrWucfQdQHlDokiDOMyspKLFq0CFdddRWuv/56v7+JEyeitLQU3333XY32v2HDBmzbto0/Pnr
|
2024-04-04 07:07:02 +00:00
|
|
|
"text/plain": [
|
|
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "display_data"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"plot_trend(frame_by_file.index, frame_by_file[\"postprocessing\"], \"AI postprocessing Trend\")\n"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-06-11 07:22:17 +00:00
|
|
|
"execution_count": 18,
|
2024-04-04 07:07:02 +00:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
2024-06-11 07:22:17 +00:00
|
|
|
"image/png": "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
|
2024-04-04 07:07:02 +00:00
|
|
|
"text/plain": [
|
|
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "display_data"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"plot_trend(frame_by_imei.index, frame_by_imei[\"inference\"], \"IMEI Inference Trend\")\n"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-06-11 07:22:17 +00:00
|
|
|
"execution_count": 19,
|
2024-04-04 07:07:02 +00:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
2024-06-11 07:22:17 +00:00
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHfCAYAAACs1/ncAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAADHVUlEQVR4nOydd5hU5fXHv9Nne98FlqX3JihoaIKKqBgNxsQumGiMCrFFo2gMolHQxBbNjxijokaCgt2oBBEQFBVBEER6Wcou29v0cn9/3Pu+8947d2ZnZmcr5/M8PDqzd+680+793nO+5xyDJEkSCIIgCIIgugjG9l4AQRAEQRBEMiFxQxAEQRBEl4LEDUEQBEEQXQoSNwRBEARBdClI3BAEQRAE0aUgcUMQBEEQRJeCxA1BEARBEF0KEjcEQRAEQXQpSNwQBEEQBNGlIHFDECcBBoMBDz74YHsvIy42bdqECRMmIC0tDQaDAVu3bm3vJRFRePDBB2EwGNp7GQQBgMQNQbQKS5YsgcFgwLffftveS2k3pk6dihEjRiT0WJ/Ph1/+8peoqanBU089hddeew29e/dO8go7BwaDIaZ/a9eube+lEkSHwdzeCyAIovVxuVwwmzvPz33//v04fPgwXnjhBdxwww3tvZx25bXXXlPdfvXVV7Fq1aqw+4cOHdqWyyKIDk3nOdoRBJEwdru9vZcQFxUVFQCA7OzspO3T4XAgLS0taftrK6655hrV7a+++gqrVq0Ku1+L0+lEampqay6NIDoslJYiiDbiuuuuQ3p6Oo4dO4aZM2ciPT0dBQUFuOuuuxAIBADI6Zjc3Fz86le/Cnt8Q0MD7HY77rrrLn5fRUUFrr/+ehQVFcFut+OUU07BK6+8EvZYPc/NsWPHcP3116NHjx6w2Wzo27cvbr75Zni9Xr5NXV0dbr/9dpSUlMBms2HAgAF47LHHEAwGE3oPDAYD5s6di3fffRcjRoyAzWbD8OHD8cknn6jepylTpgAAfvnLX8JgMGDq1Kn877t27cIvfvEL5Obmwm63Y+zYsXj//fdVz8PSguvWrcMtt9yCwsJC9OzZk//9448/xuTJk5GWloaMjAxceOGF+OGHH1T7iOXzYgSDQTzzzDMYOXIk7HY7CgoKcP7554elJf/973/jtNNOQ0pKCnJzc3HFFVfgyJEjCb2XIiwFuHnzZpx55plITU3FfffdBwDweDyYP38+BgwYAJvNhpKSEvzhD3+Ax+NR7SOWz4axYcMGjBs3Dna7Hf3798fzzz/f4tdAEMmEIjcE0YYEAgGcd955OOOMM/DXv/4Vn376KZ544gn0798fN998MywWCy655BK8/fbbeP7552G1Wvlj3333XXg8HlxxxRUA5FTT1KlTsW/fPsydOxd9+/bF8uXLcd1116Gurg633XZbxHUcP34cp59+Ourq6nDjjTdiyJAhOHbsGFasWAGn0wmr1Qqn04kpU6bg2LFj+O1vf4tevXrhyy+/xLx581BWVoann346ofdgw4YNePvtt3HLLbcgIyMDf/vb33DppZeitLQUeXl5+O1vf4vi4mI8+uijuPXWWzFu3DgUFRUBAH744QdMnDgRxcXFuPfee5GWloY333wTM2fOxFtvvYVLLrlE9Vy33HILCgoK8Kc//QkOhwOAnOaZPXs2zjvvPDz22GNwOp1YvHgxJk2ahO+++w59+vSJ+fNiXH/99ViyZAkuuOAC3HDDDfD7/Vi/fj2++uorjB07FgDwyCOP4IEHHsBll12GG264AZWVlXj22Wdx5pln4rvvvmtxlKq6uhoXXHABrrjiClxzzTUoKipCMBjExRdfjA0bNuDGG2/E0KFDsX37djz11FPYs2cP3n333bg+GwDYvn07pk+fjoKCAjz44IPw+/2YP38+/4wIokMgEQSRdF5++WUJgLRp0yZ+3+zZsyUA0kMPPaTadsyYMdJpp53Gb69cuVICIH3wwQeq7WbMmCH169eP33766aclANK///1vfp/X65XGjx8vpaenSw0NDfx+ANL8+fP57VmzZklGo1G1PkYwGJQkSZIefvhhKS0tTdqzZ4/q7/fee69kMpmk0tLSqO/BlClTpOHDh6vuAyBZrVZp3759/L5t27ZJAKRnn32W37dmzRoJgLR8+XLV48855xxp5MiRktvtVq13woQJ0sCBA/l97P2fNGmS5Pf7+f2NjY1Sdna29Jvf/Ea13/LycikrK0t1f6yf12effSYBkG699daw94C9l4cOHZJMJpP0yCOPqP6+fft2yWw2h90fjTlz5kjaQ/eUKVMkANI//vEP1f2vvfaaZDQapfXr16vu/8c//iEBkL744gt+X6yfzcyZMyW73S4dPnyY37dz507JZDKFrYsg2gtKSxFEG3PTTTepbk+ePBkHDhzgt88++2zk5+fjjTfe4PfV1tZi1apVuPzyy/l9H330Ebp164Yrr7yS32exWHDrrbeiqakJ69at033+YDCId999FxdddBGPKoiwct7ly5dj8uTJyMnJQVVVFf83bdo0BAIBfP755wm9/mnTpqF///789qhRo5CZmal6D/SoqanBZ599hssuuwyNjY18PdXV1TjvvPOwd+9eHDt2TPWY3/zmNzCZTPz2qlWrUFdXhyuvvFL1mkwmE8444wysWbMm7Hmb+7zeeustGAwGzJ8/P+yx7L18++23EQwGcdlll6met1u3bhg4cKDu88aLzWYLS2cuX74cQ4cOxZAhQ1TPe/bZZwNA2PM299kEAgGsXLkSM2fORK9evfh2Q4cOxXnnndfi10AQyYLSUgTRhjA/hkhOTg5qa2v5bbPZjEsvvRRLly6Fx+OBzWbD22+/DZ/PpxI3hw8fxsCBA2E0qq9RWNXM4cOHdddQWVmJhoaGZsu09+7di++//z5svQxm+o0X8aTI0L4Heuzbtw+SJOGBBx7AAw88EHFNxcXF/Hbfvn1Vf9+7dy8A8JO7lszMTNXtWD6v/fv3o0ePHsjNzY249r1790KSJAwcOFD37xaLJeJjY6W4uFiVxmTP++OPP8b8GTb32VRWVsLlcum+jsGDB+Ojjz5KdPkEkVRI3BBEGyJGEaJxxRVX4Pnnn8fHH3+MmTNn4s0338SQIUNwyimntPIKQwSDQZx77rn4wx/+oPv3QYMGJbTfSO+BJEnNrgcA7rrrrohRggEDBqhup6Sk6O7jtddeQ7du3cIery2Xj/Xzao5gMAiDwYCPP/5Yd5/p6ektfg7ta2XPO3LkSDz55JO6jykpKVHdTvSzIYiOBokbguiAnHnmmejevTveeOMNTJo0CZ999hnuv/9+1Ta9e/fG999/j2AwqIre7Nq1i/9dj4KCAmRmZmLHjh1R19C/f380NTVh2rRpLXw1yaFfv34A5ChHomtiKZfCwsKkva7+/ftj5cqVqKmpiRi96d+/PyRJQt++fRMWhYmubdu2bTjnnHOS0j24oKAAKSkpPAImsnv37hbvnyCSBXluCKIDYjQa8Ytf/AIffPABXnvtNfj9flVKCgBmzJiB8vJylTfH7/fj2WefRXp6Oi+n1tv3zJkz8cEHH+h2UGZX6Zdddhk2btyIlStXhm1TV1cHv9/fkpcYN4WFhZg6dSqef/55lJWVhf29srKy2X2cd955yMzMxKOPPgqfz5fQPrRceumlkCQJCxYsCPsbey9//vOfw2QyYcGCBWFREEmSUF1dHffzxsJll12GY8eO4YUXXgj7m8vl4hVksWIymXDeeefh3XffRWlpKb//xx9/1P2eEER7QZEbguigXH755Xj22Wcxf/58jBw5MqwD7Y033ojnn38e1113HTZv3ow+ffpgxYoV+OKLL/D0008jIyMj4r4fffRR/O9//8OUKVN4iXBZWRmWL1+ODRs2IDs7G3fffTfef/99/PSnP8V1112H0047DQ6HA9u3b8eKFStw6NAh5Ofnt/bboOLvf/87Jk2ahJEjR+I3v/kN+vXrhxMnTmDjxo04evQotm3bFvXxmZmZWLx4Ma699lqceuqpuOKKK1BQUIDS0lL897//xcSJE/Hcc8/FtaazzjoL1157Lf72t79h796
|
2024-04-04 07:07:02 +00:00
|
|
|
"text/plain": [
|
|
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "display_data"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"plot_trend(frame_by_invoice.index, frame_by_invoice[\"inference\"], \"Invoice Inference Trend\")\n"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-06-11 07:22:17 +00:00
|
|
|
"execution_count": 20,
|
2024-04-04 07:07:02 +00:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
2024-06-11 07:22:17 +00:00
|
|
|
"image/png": "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
|
2024-04-04 07:07:02 +00:00
|
|
|
"text/plain": [
|
|
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "display_data"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"plot_trend(frame_by_file.index, frame_by_file[\"inference\"], \"AI inference Trend\")\n"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2024-06-11 07:22:17 +00:00
|
|
|
"execution_count": 21,
|
2024-04-04 07:07:02 +00:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
2024-06-11 07:22:17 +00:00
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlEAAAHfCAYAAABwLo3rAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAADvVElEQVR4nOydd3wUZf7HP9s3ndCS0EIHC4KCNFEOjQTlTmMXT0EPy3miIAqIImBFURQVPX549sMDEURERBEQC1WqqPRektDSs31+f8w+M8/MztZsdjfJ9/168QqZzM48uzvzzPf5fJtOEAQBBEEQBEEQRFjo4z0AgiAIgiCIuggZUQRBEARBEBFARhRBEARBEEQEkBFFEARBEAQRAWREEQRBEARBRAAZUQRBEARBEBFARhRBEARBEEQEkBFFEARBEAQRAWREEQRBEARBRAAZUQRBEEE4dOgQdDodPvzww3gPJSH58MMPodPpcOjQoXgPhSBiChlRBEGEzTvvvAOdToc+ffr43Uen02HUqFExHFX9o23bttDpdEH/kXFHEPHBGO8BEARR95g7dy7atm2LjRs3Yt++fejYsWO8h1Sr5Obmorq6GiaTKabnnTlzJioqKqTfly1bhv/97394/fXX0bRpU2l7//79YzougiBEyIgiCCIsDh48iLVr12LRokV44IEHMHfuXEyZMiXew6pVdDodrFZrzM9bUFCg+L2wsBD/+9//UFBQgLZt2/p9XWVlJVJSUmp3cARBkDuPIIjwmDt3LjIzMzF06FDcfPPNmDt3bo2OZ7fb8eijj6JZs2ZIS0vDddddh2PHjkGn02Hq1KnSfnfffbem4TB16lTodDqf7f/973/Rs2dPJCUloXHjxrj99ttx9OhRxT5t27bF3Xff7fPav/zlL/jLX/4i/a4VE3X33XcjNTUVx48fR0FBAVJTU9GsWTM8/vjjcLvdiuOdOXMGd911F9LT09GoUSOMGDEC27dvj4orjo1j//79uPbaa5GWloa///3vAACPx4OZM2figgsugNVqRVZWFh544AGcO3fO53P461//ip9//hm9e/eG1WpF+/bt8fHHH/uc7/fff8eVV16JpKQktGrVCs8//zw8Hk+N3gNB1FXIiCIIIizmzp2LG2+8EWazGcOGDcPevXuxadOmiI937733YubMmRg8eDBeeuklmEwmDB06tEZj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
|
2024-04-04 07:07:02 +00:00
|
|
|
"text/plain": [
|
|
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "display_data"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"plot_trend(frame_by_file.index, frame_by_file[\"queue\"], \"AI queuing Trend\")\n"
|
|
|
|
]
|
2024-06-11 07:22:17 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 22,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"def split_timestamps_by_day(timestamps):\n",
|
|
|
|
" \"\"\"\n",
|
|
|
|
" Splits a list of timestamps into a list of lists, where each inner list contains the timestamps for a single day.\n",
|
|
|
|
" \n",
|
|
|
|
" Args:\n",
|
|
|
|
" timestamps (list): A list of timestamp values.\n",
|
|
|
|
" \n",
|
|
|
|
" Returns:\n",
|
|
|
|
" list: A list of lists, where each inner list contains the timestamps for a single day.\n",
|
|
|
|
" \"\"\"\n",
|
|
|
|
" # Convert timestamps to datetime objects\n",
|
|
|
|
" datetimes = [pd.Timestamp(t, unit='s') for t in timestamps]\n",
|
|
|
|
" \n",
|
|
|
|
" # Create a DataFrame with the datetime objects\n",
|
|
|
|
" df = pd.DataFrame({'timestamp': datetimes})\n",
|
|
|
|
" \n",
|
|
|
|
" # Group the DataFrame by day and collect the timestamps for each day\n",
|
|
|
|
" timestamps_by_day = []\n",
|
|
|
|
" for _, group in df.groupby(pd.Grouper(key='timestamp', freq='D')):\n",
|
|
|
|
" day_timestamps = [t.timestamp() for t in group['timestamp']]\n",
|
|
|
|
" timestamps_by_day.append(day_timestamps)\n",
|
|
|
|
" \n",
|
|
|
|
" return timestamps_by_day"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 23,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"def visualize_requests_by_time(timestamps_by_day):\n",
|
|
|
|
" \"\"\"\n",
|
|
|
|
" Generates a histogram to visualize the number of requests received by time.\n",
|
|
|
|
" \n",
|
|
|
|
" Args:\n",
|
|
|
|
" timestamps (list): A list of timestamps (in seconds) representing the time when each request was received.\n",
|
|
|
|
" \"\"\"\n",
|
|
|
|
" num_days = len(timestamps_by_day)\n",
|
|
|
|
" fig, axes = plt.subplots(nrows=int(np.ceil(num_days / 2)), ncols=2, figsize=(90, 450))\n",
|
|
|
|
" for i, day_timestamps in enumerate(timestamps_by_day):\n",
|
|
|
|
" row = i // 2\n",
|
|
|
|
" col = i % 2\n",
|
|
|
|
" \n",
|
|
|
|
" day_timestamps = [pd.Timestamp(t, unit='s') for t in day_timestamps]\n",
|
|
|
|
" # Get the current axis\n",
|
|
|
|
" ax = axes[row, col] if num_days > 1 else axes\n",
|
|
|
|
" \n",
|
|
|
|
" # Plot the histogram for the current day\n",
|
|
|
|
" ax.hist(pd.to_datetime(day_timestamps), bins=60*24, edgecolor='black')\n",
|
|
|
|
" # ax.xticks(rotation=45)\n",
|
|
|
|
" ax.set_title(f\"Day {i+1}\")\n",
|
|
|
|
" ax.set_xlabel(\"Time\")\n",
|
|
|
|
" ax.set_ylabel(\"Count\")\n",
|
|
|
|
"\n",
|
|
|
|
" ax2 = ax.twinx()\n",
|
|
|
|
" ax2.set_ylabel(\"Time Process (s)\")\n",
|
|
|
|
" ax2.set_ylim(min(day_timestamps), max(day_timestamps))\n",
|
|
|
|
" # Convert timestamps to datetime objects\n",
|
|
|
|
" # timestamps = [pd.Timestamp(t, unit='s') for t in timestamps]\n",
|
|
|
|
" \n",
|
|
|
|
" # # Create a histogram with 24 bins (one for each hour of the day)\n",
|
|
|
|
" # plt.figure(figsize=(12, 6))\n",
|
|
|
|
" # # plt.hist(pd.to_datetime([t.hour for t in timestamps], unit='h'), bins=24, edgecolor='black')\n",
|
|
|
|
" # plt.hist(pd.to_datetime(timestamps), bins=1000, edgecolor='black')\n",
|
|
|
|
" \n",
|
|
|
|
" # Set x-axis labels to show the hour of the day\n",
|
|
|
|
" # x_labels = [f'{i:02d}:00' for i in range(24)]\n",
|
|
|
|
" # plt.xticks(np.arange(0, 24), x_labels, rotation=45)\n",
|
|
|
|
" # plt.xticks(rotation=45)\n",
|
|
|
|
" # plt.xlabel('Hour of the Day')\n",
|
|
|
|
" # plt.ylabel('Number of Requests')\n",
|
|
|
|
" # plt.title('Requests Received by Time of Day')\n",
|
|
|
|
" # plt.show()\n",
|
|
|
|
" plt.suptitle(\"Distribution of Requests by Time\")\n",
|
|
|
|
" plt.tight_layout()\n",
|
|
|
|
" plt.show()"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 24,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
2024-06-11 07:47:09 +00:00
|
|
|
"image/png": "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
|