Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Circonus for Data Science
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Circonus for Data Science\n",
"\n",
"A frequent request we were hearing from many customers is:\n",
"\n",
"> How can I analyze my data with Python?\n",
"\n",
"The python Data Science toolchain (Jupyer/NumPy/pandas) offers a wide spectrum of advanced data anlaytics capabilities.\n",
"Hence seamless integration with this environment is important for our customers that want to make use of those tools.\n",
"\n",
"Circonus has for a long time provided [python bindings](https://github.com/circonus-labs/python-circonusapi) for it's API.\n",
"With this bindings you can configure the account, create graphs and dashboards, etc.\n",
"However, fetching data and getting it into the right format involves multiple steps and was not easy to get right.\n",
"\n",
"We are pleased to announce that this has changed now.\n",
"We have just added a new capabilities to our python bindings, that allow you to fetch and analyze data more effectively.\n",
"Here is how to use it."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Quick Tour"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"### SKIP THIS CELL ###\n",
"\n",
"%matplotlib inline\n",
"\n",
"import json\n",
"import os\n",
"from datetime import datetime\n",
"import pandas as pd\n",
"\n",
"with open(os.path.expanduser(\"~/work/.circonusrc.json\"),\"r\") as fh:\n",
" config = json.load(fh)\n",
"api_token = config['demo']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Connecting to the API"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You need an API token to connect to the API.\n",
"You can create one using the UI under Integrations > API Tokens.\n",
"In the following we assume the vairable api_token holds a valid API token for your account."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import circonusdata\n",
"circ = circonusdata.CirconusData(api_token)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Searching for Metrics"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The first thing we can do is search for some metrics:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"M = circ.search('(metric:duration)', limit=10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The returned object extends the list class, and can be manipulated like any list object:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CirconusMetric{check_id=195902,name=duration}\n",
"10\n"
]
}
],
"source": [
"print(M[0])\n",
"print(len(M))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Printing the list, gives a table representation of the fetched metrics"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"check_id type metric_name\n",
"--------------------------------------------------\n",
"195902 numeric duration \n",
"218003 numeric duration \n",
"154743 numeric duration \n",
"217833 numeric duration \n",
"217834 numeric duration \n",
"218002 numeric duration \n",
"222857 numeric duration \n",
"222854 numeric duration \n",
"222862 numeric duration \n",
"222860 numeric duration \n"
]
}
],
"source": [
"print(M)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Metric lists provide a .fetch() method that can be used to fetch data.\n",
"Fetches are performed serially, one metric at a time, so the retrival can take some time.\n",
"We will later see how to parallelize fetches with CAQL."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"R = M.fetch(\n",
" start=datetime(2018,1,1), # start at Midnight UTC 2018-01-01\n",
" period=60, # return 60 second (=1min) aggregates\n",
" count=180, # return 180 samples\n",
" kind=\"value\" # return (mean-)value aggregate\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The resulting object is a dict that maps metrics names to the fetched data\n",
"This is designed in such a way that it can be directly passed to a pandas DataFrame constructor."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>154743/duration</th>\n",
" <th>195902/duration</th>\n",
" <th>217833/duration</th>\n",
" <th>217834/duration</th>\n",
" <th>218002/duration</th>\n",
" <th>218003/duration</th>\n",
" <th>222854/duration</th>\n",
" <th>222857/duration</th>\n",
" <th>222860/duration</th>\n",
" <th>222862/duration</th>\n",
" </tr>\n",
" <tr>\n",
" <th>time</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2018-01-01 00:00:00</th>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>12</td>\n",
" <td>11</td>\n",
" <td>12</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2018-01-01 00:01:00</th>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>11</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2018-01-01 00:02:00</th>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>11</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2018-01-01 00:03:00</th>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>12</td>\n",
" <td>11</td>\n",
" <td>12</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2018-01-01 00:04:00</th>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>12</td>\n",
" <td>11</td>\n",
" <td>11</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 154743/duration 195902/duration 217833/duration \\\n",
"time \n",
"2018-01-01 00:00:00 1 4 1 \n",
"2018-01-01 00:01:00 1 2 1 \n",
"2018-01-01 00:02:00 1 2 1 \n",
"2018-01-01 00:03:00 1 2 1 \n",
"2018-01-01 00:04:00 1 2 1 \n",
"\n",
" 217834/duration 218002/duration 218003/duration \\\n",
"time \n",
"2018-01-01 00:00:00 1 1 1 \n",
"2018-01-01 00:01:00 1 2 1 \n",
"2018-01-01 00:02:00 1 1 1 \n",
"2018-01-01 00:03:00 1 1 1 \n",
"2018-01-01 00:04:00 1 1 1 \n",
"\n",
" 222854/duration 222857/duration 222860/duration \\\n",
"time \n",
"2018-01-01 00:00:00 12 11 12 \n",
"2018-01-01 00:01:00 11 12 12 \n",
"2018-01-01 00:02:00 12 12 11 \n",
"2018-01-01 00:03:00 12 11 12 \n",
"2018-01-01 00:04:00 12 11 11 \n",
"\n",
" 222862/duration \n",
"time \n",
"2018-01-01 00:00:00 1 \n",
"2018-01-01 00:01:00 1 \n",
"2018-01-01 00:02:00 1 \n",
"2018-01-01 00:03:00 1 \n",
"2018-01-01 00:04:00 1 "
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"df = pd.DataFrame(R)\n",
"\n",
"# [OPTIONAL] Make the DataFrame aware of the time column\n",
"df['time']=pd.to_datetime(df['time'],unit='s')\n",
"df.set_index('time', inplace=True)\n",
"\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Data Analysis with pandas"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"pandas makes common data analysis methods very easy to perform.\n",
"We start with computing some summary statistics"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>154743/duration</th>\n",
" <th>195902/duration</th>\n",
" <th>217833/duration</th>\n",
" <th>217834/duration</th>\n",
" <th>218002/duration</th>\n",
" <th>218003/duration</th>\n",
" <th>222854/duration</th>\n",
" <th>222857/duration</th>\n",
" <th>222860/duration</th>\n",
" <th>222862/duration</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>180.000000</td>\n",
" <td>180.000000</td>\n",
" <td>180.0</td>\n",
" <td>180.000000</td>\n",
" <td>180.000000</td>\n",
" <td>180.000000</td>\n",
" <td>180.000000</td>\n",
" <td>180.000000</td>\n",
" <td>180.00000</td>\n",
" <td>180.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>1.316667</td>\n",
" <td>2.150000</td>\n",
" <td>1.0</td>\n",
" <td>1.150000</td>\n",
" <td>1.044444</td>\n",
" <td>1.177778</td>\n",
" <td>11.677778</td>\n",
" <td>11.783333</td>\n",
" <td>11.80000</td>\n",
" <td>1.022222</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.642573</td>\n",
" <td>0.583526</td>\n",
" <td>0.0</td>\n",
" <td>1.130951</td>\n",
" <td>0.232120</td>\n",
" <td>0.897890</td>\n",
" <td>0.535401</td>\n",
" <td>0.799965</td>\n",
" <td>0.89941</td>\n",
" <td>0.181722</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.0</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>11.000000</td>\n",
" <td>11.000000</td>\n",
" <td>11.00000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>1.000000</td>\n",
" <td>2.000000</td>\n",
" <td>1.0</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>11.000000</td>\n",
" <td>11.000000</td>\n",
" <td>11.00000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>1.000000</td>\n",
" <td>2.000000</td>\n",
" <td>1.0</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>12.000000</td>\n",
" <td>12.000000</td>\n",
" <td>12.00000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>1.000000</td>\n",
" <td>2.000000</td>\n",
" <td>1.0</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>12.000000</td>\n",
" <td>12.000000</td>\n",
" <td>12.00000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>15.000000</td>\n",
" <td>4.000000</td>\n",
" <td>1.0</td>\n",
" <td>12.000000</td>\n",
" <td>3.000000</td>\n",
" <td>9.000000</td>\n",
" <td>13.000000</td>\n",
" <td>17.000000</td>\n",
" <td>16.00000</td>\n",
" <td>3.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 154743/duration 195902/duration 217833/duration 217834/duration \\\n",
"count 180.000000 180.000000 180.0 180.000000 \n",
"mean 1.316667 2.150000 1.0 1.150000 \n",
"std 1.642573 0.583526 0.0 1.130951 \n",
"min 1.000000 1.000000 1.0 1.000000 \n",
"25% 1.000000 2.000000 1.0 1.000000 \n",
"50% 1.000000 2.000000 1.0 1.000000 \n",
"75% 1.000000 2.000000 1.0 1.000000 \n",
"max 15.000000 4.000000 1.0 12.000000 \n",
"\n",
" 218002/duration 218003/duration 222854/duration 222857/duration \\\n",
"count 180.000000 180.000000 180.000000 180.000000 \n",
"mean 1.044444 1.177778 11.677778 11.783333 \n",
"std 0.232120 0.897890 0.535401 0.799965 \n",
"min 1.000000 1.000000 11.000000 11.000000 \n",
"25% 1.000000 1.000000 11.000000 11.000000 \n",
"50% 1.000000 1.000000 12.000000 12.000000 \n",
"75% 1.000000 1.000000 12.000000 12.000000 \n",
"max 3.000000 9.000000 13.000000 17.000000 \n",
"\n",
" 222860/duration 222862/duration \n",
"count 180.00000 180.000000 \n",
"mean 11.80000 1.022222 \n",
"std 0.89941 0.181722 \n",
"min 11.00000 1.000000 \n",
"25% 11.00000 1.000000 \n",
"50% 12.00000 1.000000 \n",
"75% 12.00000 1.000000 \n",
"max 16.00000 3.000000 "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here is a plot of the dataset over time:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f600687e668>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from matplotlib import pyplot as plt\n",
"ax = df.plot(style=\".\",figsize=(20,5),legend=False, ylim=(0,20), linewidth=0.2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also summarize the individual distributions as box plots:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f6006382588>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ax = df.plot(figsize=(20,5),legend=False, ylim=(0,20), kind=\"box\")\n",
"ax.figure.autofmt_xdate(rotation=-20,ha=\"left\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Working with Histogram Data\n",
"\n",
"Histogram data can be fetched using the kind=\"histogram\" parameter to fetch.\n",
"Numeric metrics will be converted to histograms.\n",
"Histograms are represented as libcircllhist objects, which have very efficient methods for the most common histogram operations (mean, quantiles)."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"check_id type metric_name\n",
"--------------------------------------------------\n",
"160764 histogram api`GET`/getState \n"
]
}
],
"source": [
"MH = circ.search(\"api`GET`/getState\", limit=1)\n",
"print(MH)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's fetch the 1h latency distributions of this API for the timespan of one day."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"RH = MH.fetch(datetime(2018,1,1), 60*60, 24, kind=\"histogram\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can plot the resulting histograms with a little helper function."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"### SKIP THIS CELL ###\n",
"\n",
"def circllhist_plot(H,**kwargs):\n",
" x=[] # midpoints\n",
" h=[] # height\n",
" w=[] # widths\n",
" for b, c in H:\n",
" x.append(b.midpoint())\n",
" h.append(c / b.width())\n",
" w.append(b.width())\n",
" return plt.bar(x,h,w,**kwargs,)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0, 100)"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f600623a0b8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure(figsize=(20, 5))\n",
"for H in RH['160764/api`GET`/getState']:\n",
" circllhist_plot(H, alpha=0.2)\n",
"ax = fig.get_axes()\n",
"ax[0].set_xlim(0,100)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Again we can directly import the data into a pandas data frame, and perform some calculations on the data:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"dfh = pd.DataFrame(RH)\n",
"\n",
"# [OPTIONAL] Make the DataFrame aware of the time column\n",
"dfh['time']=pd.to_datetime(dfh['time'],unit='s')\n",
"dfh.set_index('time', inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>160764/api`GET`/getState</th>\n",
" <th>p99</th>\n",
" <th>p90</th>\n",
" <th>p95</th>\n",
" <th>p50</th>\n",
" <th>mean</th>\n",
" </tr>\n",
" <tr>\n",
" <th>time</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2018-01-01 00:00:00</th>\n",
" <td>{\"+29e-002\": 2, \"+40e-002\": 6, \"+50e-002\": 8, ...</td>\n",
" <td>112.835714</td>\n",
" <td>112.835714</td>\n",
" <td>112.835714</td>\n",
" <td>11.992790</td>\n",
" <td>15.387013</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2018-01-01 01:00:00</th>\n",
" <td>{\"+40e-002\": 2, \"+50e-002\": 2, \"+59e-002\": 5, ...</td>\n",
" <td>114.961628</td>\n",
" <td>114.961628</td>\n",
" <td>114.961628</td>\n",
" <td>16.567822</td>\n",
" <td>19.542284</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2018-01-01 02:00:00</th>\n",
" <td>{\"+40e-002\": 3, \"+50e-002\": 12, \"+59e-002\": 4,...</td>\n",
" <td>118.124324</td>\n",
" <td>118.124324</td>\n",
" <td>118.124324</td>\n",
" <td>20.556859</td>\n",
" <td>24.012226</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2018-01-01 03:00:00</th>\n",
" <td>{\"+29e-002\": 1, \"+40e-002\": 7, \"+50e-002\": 21,...</td>\n",
" <td>427.122222</td>\n",
" <td>427.122222</td>\n",
" <td>427.122222</td>\n",
" <td>20.827982</td>\n",
" <td>37.040173</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2018-01-01 04:00:00</th>\n",
" <td>{\"+40e-002\": 6, \"+50e-002\": 26, \"+59e-002\": 15...</td>\n",
" <td>496.077778</td>\n",
" <td>496.077778</td>\n",
" <td>496.077778</td>\n",
" <td>23.247373</td>\n",
" <td>40.965517</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 160764/api`GET`/getState \\\n",
"time \n",
"2018-01-01 00:00:00 {\"+29e-002\": 2, \"+40e-002\": 6, \"+50e-002\": 8, ... \n",
"2018-01-01 01:00:00 {\"+40e-002\": 2, \"+50e-002\": 2, \"+59e-002\": 5, ... \n",
"2018-01-01 02:00:00 {\"+40e-002\": 3, \"+50e-002\": 12, \"+59e-002\": 4,... \n",
"2018-01-01 03:00:00 {\"+29e-002\": 1, \"+40e-002\": 7, \"+50e-002\": 21,... \n",
"2018-01-01 04:00:00 {\"+40e-002\": 6, \"+50e-002\": 26, \"+59e-002\": 15... \n",
"\n",
" p99 p90 p95 p50 mean \n",
"time \n",
"2018-01-01 00:00:00 112.835714 112.835714 112.835714 11.992790 15.387013 \n",
"2018-01-01 01:00:00 114.961628 114.961628 114.961628 16.567822 19.542284 \n",
"2018-01-01 02:00:00 118.124324 118.124324 118.124324 20.556859 24.012226 \n",
"2018-01-01 03:00:00 427.122222 427.122222 427.122222 20.827982 37.040173 \n",
"2018-01-01 04:00:00 496.077778 496.077778 496.077778 23.247373 40.965517 "
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dfh['p99'] = dfh.iloc[:,0].map(lambda h: h.quantile(0.99))\n",
"dfh['p90'] = dfh.iloc[:,0].map(lambda h: h.quantile(0.99))\n",
"dfh['p95'] = dfh.iloc[:,0].map(lambda h: h.quantile(0.99))\n",
"dfh['p50'] = dfh.iloc[:,0].map(lambda h: h.quantile(0.5))\n",
"dfh['mean'] = dfh.iloc[:,0].map(lambda h: h.mean())\n",
"dfh.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The CAQL API\n",
"\n",
"Circonus comes with a wide range of data analysis capabilities that are integrated into the Circonus Analytics Query Language [CAQL](https://login.circonus.com/resources/docs/user/caql_reference.html).\n",
"\n",
"CAQL provides highly efficient data fetching operations that allow you to process multiple metrics at the same time.\n",
"Also by performing the computation close to the data, you can safe time and bandwithd."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To get started we search for `duration` metrics, like we did before, using CAQL:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>output[0]</th>\n",
" <th>output[10]</th>\n",
" <th>output[11]</th>\n",
" <th>output[12]</th>\n",
" <th>output[13]</th>\n",
" <th>output[14]</th>\n",
" <th>output[15]</th>\n",
" <th>output[16]</th>\n",
" <th>output[17]</th>\n",
" <th>output[18]</th>\n",
" <th>...</th>\n",
" <th>output[21]</th>\n",
" <th>output[2]</th>\n",
" <th>output[3]</th>\n",
" <th>output[4]</th>\n",
" <th>output[5]</th>\n",
" <th>output[6]</th>\n",
" <th>output[7]</th>\n",
" <th>output[8]</th>\n",
" <th>output[9]</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4</td>\n",
" <td>12</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>11</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>11</td>\n",
" <td>12</td>\n",
" <td>1</td>\n",
" <td>1514764800</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>12</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>11</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>12</td>\n",
" <td>11</td>\n",
" <td>1</td>\n",
" <td>1514764860</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>11</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>12</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>1</td>\n",
" <td>1514764920</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>12</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>12</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>11</td>\n",
" <td>12</td>\n",
" <td>1</td>\n",
" <td>1514764980</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>11</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>11</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>11</td>\n",
" <td>12</td>\n",
" <td>1</td>\n",
" <td>1514765040</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 23 columns</p>\n",
"</div>"
],
"text/plain": [
" output[0] output[10] output[11] output[12] output[13] output[14] \\\n",
"0 4 12 1 1 2 1 \n",
"1 2 12 1 1 1 1 \n",
"2 2 11 1 1 2 1 \n",
"3 2 12 1 1 2 1 \n",
"4 2 11 1 1 2 1 \n",
"\n",
" output[15] output[16] output[17] output[18] ... output[21] \\\n",
"0 1 1 11 1 ... 1 \n",
"1 1 1 11 1 ... 1 \n",
"2 1 1 12 1 ... 1 \n",
"3 1 1 12 1 ... 1 \n",
"4 1 1 11 1 ... 1 \n",
"\n",
" output[2] output[3] output[4] output[5] output[6] output[7] \\\n",
"0 1 1 1 1 1 11 \n",
"1 1 1 1 1 2 12 \n",
"2 1 1 1 1 1 12 \n",
"3 1 1 1 1 1 11 \n",
"4 1 1 1 1 1 11 \n",
"\n",
" output[8] output[9] time \n",
"0 12 1 1514764800 \n",
"1 11 1 1514764860 \n",
"2 12 1 1514764920 \n",
"3 12 1 1514764980 \n",
"4 12 1 1514765040 \n",
"\n",
"[5 rows x 23 columns]"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A = circ.caql('search:metric(\"duration\")', datetime(2018,1,1), 60, 5000)\n",
"dfc = pd.DataFrame(A)\n",
"dfc.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This API call fetched 1000 samples from 22 metrics, and completed in just over 1 second.\n",
"The equivalent `circ.search().fetch()` statment would have taken around one minute to complete.\n",
"\n",
"One drawback of the CAQL fetching is, that we use the metric names in the output.\n",
"We are working on resolving this shortcoming."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To showcase some of the analytics features we compute a rolling mean over the second largest duration metric in the above cluster using CAQL,\n",
"and plot the transfomed data using pandas."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f6003f16128>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f600620ef28>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"B = circ.caql(\"\"\"\n",
"\n",
"search:metric(\"duration\") | stats:trim(1) | stats:max() | rolling:mean(10M)\n",
"\n",
"\"\"\", datetime(2018,1,1), 60, 1000)\n",
"df = pd.DataFrame(B)\n",
"df['time']=pd.to_datetime(df['time'],unit='s')\n",
"df.set_index('time', inplace=True)\n",
"df.plot(figsize=(20,5), lw=.5,ylim=(0,50))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can also fetch histogram data with `circ.caql()`:"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>output[0]</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>{\"+29e-002\": 2, \"+40e-002\": 6, \"+50e-002\": 8, ...</td>\n",
" <td>1514764800</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>{\"+40e-002\": 2, \"+50e-002\": 2, \"+59e-002\": 5, ...</td>\n",
" <td>1514768400</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>{\"+40e-002\": 3, \"+50e-002\": 12, \"+59e-002\": 4,...</td>\n",
" <td>1514772000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>{\"+29e-002\": 1, \"+40e-002\": 7, \"+50e-002\": 21,...</td>\n",
" <td>1514775600</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>{\"+40e-002\": 6, \"+50e-002\": 26, \"+59e-002\": 15...</td>\n",
" <td>1514779200</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" output[0] time\n",
"0 {\"+29e-002\": 2, \"+40e-002\": 6, \"+50e-002\": 8, ... 1514764800\n",
"1 {\"+40e-002\": 2, \"+50e-002\": 2, \"+59e-002\": 5, ... 1514768400\n",
"2 {\"+40e-002\": 3, \"+50e-002\": 12, \"+59e-002\": 4,... 1514772000\n",
"3 {\"+29e-002\": 1, \"+40e-002\": 7, \"+50e-002\": 21,... 1514775600\n",
"4 {\"+40e-002\": 6, \"+50e-002\": 26, \"+59e-002\": 15... 1514779200"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"AH = circ.caql('search:metric:histogram(\"api`GET`/getState\")', datetime(2018,1,1), 60*60, 24)\n",
"dfch = pd.DataFrame(AH)\n",
"dfch.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can perform a wide variety of data transformation tasks directly inside Circonus using CAQL expressions.\n",
"This speeds up the computation even further.\n",
"Another advantage is, that we can leverage CAQL queries for live graphing and alerting in the Circonus UI.\n",
"\n",
"In this example we compute how many requests were serviced above certain latencty thresholds."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f60035c3b70>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f60035804a8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"B = circ.caql('''\n",
"\n",
"search:metric:histogram(\"api`GET`/getState\") | histogram:count_above(0,10,50,100,500,1000)\n",
"\n",
"''', datetime(2018,1,1), 60*5, 24*20)\n",
"dfc2 = pd.DataFrame(B)\n",
"dfc2['time']=pd.to_datetime(dfc2['time'],unit='s')\n",
"dfc2.set_index('time', inplace=True)\n",
"dfc2.plot(figsize=(20,5), colormap=\"gist_heat\",legend=False, lw=.5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Conclusion\n",
"\n",
"Getting Circonus-data into python has never been easier.\n",
"We hope that this blog post allows you to get started with the new data fetching capabilities.\n",
"If you run into any problems or have some suggestions, feel free to open an issue on [GitHUb](github.com/circonus-labs/python-circonusapi),\n",
"or get in touch on our [Slack channel](http://slack.s.circonus.com/).\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment