# Standard
import tempfile
import os
import sys
import pyparsing
from pyparsing import Word, alphas, Suppress, Combine, nums, string, Optional, Regex, ParseException
from datetime import datetime
import pandas as pd
import numpy as np
from numpy.random import randn
# Stats
from scipy import stats
from pylab import *
# Plotting
import matplotlib.pyplot as plt
import matplotlib as mpl
import seaborn as sns
%pylab inline
%matplotlib inline
C:\Anaconda3\lib\site-packages\matplotlib\__init__.py:872: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter. warnings.warn(self.msg_depr % (key, alt_key)) WARNING:
Populating the interactive namespace from numpy and matplotlib
pylab import has clobbered these variables: ['linalg', 'power', 'fft', 'draw_if_interactive', 'random', 'info'] `%matplotlib` prevents importing * from pylab and numpy
logfilecontent = '''
Feb 25 12:40:12 victim /opt/zl/bin/zdaemon[29412]: [zl::esink::Internals::timeout][/m0/zdaemon3]: Interval(5000): \
numCycles(173) numTimeouts(89) numMessages(241) numTMessages(2) numDescriptors(48) numPipes(0) task-events(0) num-timers(439)
Feb 25 12:40:17 victim /opt/zl/bin/zdaemon[29412]: [zl::esink::Internals::timeout][/m0/zdaemon3]: Interval(5000): \
numCycles(17) numTimeouts(82) numMessages(247) numTMessages(3) numDescriptors(54) numPipes(0) task-events(0) num-timers(454)
other logs 1
Feb 25 12:40:22 victim /opt/zl/bin/zdaemon[29412]: [zl::esink::Internals::timeout][/m0/zdaemon3]: Interval(5000): \
numCycles(12) numTimeouts(2) numMessages(242) numTMessages(5) numDescriptors(67) numPipes(0) task-events(0) num-timers(499)
Feb 25 12:40:27 victim /opt/zl/bin/zdaemon[29412]: [zl::esink::Internals::timeout][/m0/zdaemon3]: Interval(5000): \
numCycles(7) numTimeouts(32) numMessages(189) numTMessages(8) numDescriptors(60) numPipes(0) task-events(0) num-timers(413)
Feb 25 12:40:32 victim /opt/zl/bin/zdaemon[29412]: [zl::esink::Internals::timeout][/m0/zdaemon3]: Interval(5000): \
numCycles(18) numTimeouts(21) numMessages(310) numTMessages(3) numDescriptors(78) numPipes(0) task-events(0) num-timers(505)
other logs 2
Feb 25 12:40:37 victim /opt/zl/bin/zdaemon[29412]: [zl::esink::Internals::timeout][/m0/zdaemon3]: Interval(5000): \
numCycles(22) numTimeouts(17) numMessages(233) numTMessages(6) numDescriptors(65) numPipes(0) task-events(0) num-timers(569)
'''
month = Word(string.ascii_letters, string.ascii_letters, exact=3)
integer = Word(nums)
serverDateTime = Combine(month + " " + integer + " " + integer + ":" + integer + ":" + integer)
hostname = Word(alphas + nums + "_" + "-")
daemon = Word(alphas + "/" + "-" + "_" ) + Optional(Suppress("[") + integer + Suppress("]")) + Suppress(":")
zl = Suppress("[") + Word( alphas + "::" + alphas + "::" + alphas + "::" + alphas ) + Suppress("]")
m0 = Suppress("[") + Word( alphas + nums + "_" + "-" + "/" ) + Suppress("]") + Suppress(":")
interval = Suppress("Interval") + Suppress("(") + Word(nums) + Suppress("):")
numCycles = Suppress("numCycles") + Suppress("(") + Word(nums) + Suppress(")")
numTimeouts = Suppress("numTimeouts") + Suppress("(") + Word(nums) + Suppress(")")
numMessages = Suppress("numMessages") + Suppress("(") + Word(nums) + Suppress(")")
numTMessages = Suppress("numTMessages") + Suppress("(") + Word(nums) + Suppress(")")
numDescriptors = Suppress("numDescriptors") + Suppress("(") + Word(nums) + Suppress(")")
numPipes = Suppress("numPipes") + Suppress("(") + Word(nums) + Suppress(")")
taskevents = Suppress("task-events") + Suppress("(") + Word(nums) + Suppress(")")
numtimers = Suppress("num-timers") + Suppress("(") + Word(nums) + Suppress(")")
bnf = (serverDateTime + hostname + daemon + zl + m0 + interval + numCycles + numTimeouts +
numMessages + numTMessages + numDescriptors + numPipes + taskevents + numtimers)
def make_tempfile():
fd, temp_file_name = tempfile.mkstemp()
os.close(fd)
f = open(temp_file_name,'wt')
try:
f.write(logfilecontent)
finally:
f.close()
return temp_file_name
def cleanup(filename):
os.unlink(filename)
filename = make_tempfile()
L=list()
with open(filename) as infile:
for line in infile:
try:
results = bnf.parseString(line)
except ParseException as pe:
continue
else:
L.append(results)
print(L)
cleanup(filename)
[(['Feb 25 12:40:12', 'victim', '/opt/zl/bin/zdaemon', '29412', 'zl::esink::Internals::timeout', '/m0/zdaemon3', '5000', '173', '89', '241', '2', '48', '0', '0', '439'], {}), (['Feb 25 12:40:17', 'victim', '/opt/zl/bin/zdaemon', '29412', 'zl::esink::Internals::timeout', '/m0/zdaemon3', '5000', '17', '82', '247', '3', '54', '0', '0', '454'], {}), (['Feb 25 12:40:22', 'victim', '/opt/zl/bin/zdaemon', '29412', 'zl::esink::Internals::timeout', '/m0/zdaemon3', '5000', '12', '2', '242', '5', '67', '0', '0', '499'], {}), (['Feb 25 12:40:27', 'victim', '/opt/zl/bin/zdaemon', '29412', 'zl::esink::Internals::timeout', '/m0/zdaemon3', '5000', '7', '32', '189', '8', '60', '0', '0', '413'], {}), (['Feb 25 12:40:32', 'victim', '/opt/zl/bin/zdaemon', '29412', 'zl::esink::Internals::timeout', '/m0/zdaemon3', '5000', '18', '21', '310', '3', '78', '0', '0', '505'], {}), (['Feb 25 12:40:37', 'victim', '/opt/zl/bin/zdaemon', '29412', 'zl::esink::Internals::timeout', '/m0/zdaemon3', '5000', '22', '17', '233', '6', '65', '0', '0', '569'], {})]
# Columns naming
dframe = pd.DataFrame(L,columns=['serverDateTime','hostname','daemon','daemon-p','zl','m0','interval','numcycles',
'numtimeouts','nummessages','numtmessages','numdescriptors','numpipes','task-events',
'num-timers'])
# dtype conversion to integer
dframe[['interval','numcycles','numtimeouts','nummessages','numtmessages','numdescriptors','numpipes','task-events',
'num-timers']] = dframe[['interval','numcycles','numtimeouts','nummessages','numtmessages','numdescriptors',
'numpipes','task-events','num-timers']].astype(int)
dframe
serverDateTime | hostname | daemon | daemon-p | zl | m0 | interval | numcycles | numtimeouts | nummessages | numtmessages | numdescriptors | numpipes | task-events | num-timers | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Feb 25 12:40:12 | victim | /opt/zl/bin/zdaemon | 29412 | zl::esink::Internals::timeout | /m0/zdaemon3 | 5000 | 173 | 89 | 241 | 2 | 48 | 0 | 0 | 439 |
1 | Feb 25 12:40:17 | victim | /opt/zl/bin/zdaemon | 29412 | zl::esink::Internals::timeout | /m0/zdaemon3 | 5000 | 17 | 82 | 247 | 3 | 54 | 0 | 0 | 454 |
2 | Feb 25 12:40:22 | victim | /opt/zl/bin/zdaemon | 29412 | zl::esink::Internals::timeout | /m0/zdaemon3 | 5000 | 12 | 2 | 242 | 5 | 67 | 0 | 0 | 499 |
3 | Feb 25 12:40:27 | victim | /opt/zl/bin/zdaemon | 29412 | zl::esink::Internals::timeout | /m0/zdaemon3 | 5000 | 7 | 32 | 189 | 8 | 60 | 0 | 0 | 413 |
4 | Feb 25 12:40:32 | victim | /opt/zl/bin/zdaemon | 29412 | zl::esink::Internals::timeout | /m0/zdaemon3 | 5000 | 18 | 21 | 310 | 3 | 78 | 0 | 0 | 505 |
5 | Feb 25 12:40:37 | victim | /opt/zl/bin/zdaemon | 29412 | zl::esink::Internals::timeout | /m0/zdaemon3 | 5000 | 22 | 17 | 233 | 6 | 65 | 0 | 0 | 569 |
dframe.columns
Index(['serverDateTime', 'hostname', 'daemon', 'daemon-p', 'zl', 'm0', 'interval', 'numcycles', 'numtimeouts', 'nummessages', 'numtmessages', 'numdescriptors', 'numpipes', 'task-events', 'num-timers'], dtype='object')
dframe.index
Int64Index([0, 1, 2, 3, 4, 5], dtype='int64')
dframe.columns
Index(['serverDateTime', 'hostname', 'daemon', 'daemon-p', 'zl', 'm0', 'interval', 'numcycles', 'numtimeouts', 'nummessages', 'numtmessages', 'numdescriptors', 'numpipes', 'task-events', 'num-timers'], dtype='object')
dframe['nummessages']
0 241 1 247 2 242 3 189 4 310 5 233 Name: nummessages, dtype: int32
sample_string2 = dframe['num-timers']
sample_string2
0 439 1 454 2 499 3 413 4 505 5 569 Name: num-timers, dtype: int32
del dframe['hostname']
del dframe['daemon']
del dframe['daemon-p']
del dframe['zl']
del dframe['m0']
del dframe['numpipes']
del dframe['task-events']
dframe
serverDateTime | interval | numcycles | numtimeouts | nummessages | numtmessages | numdescriptors | num-timers | |
---|---|---|---|---|---|---|---|---|
0 | Feb 25 12:40:12 | 5000 | 173 | 89 | 241 | 2 | 48 | 439 |
1 | Feb 25 12:40:17 | 5000 | 17 | 82 | 247 | 3 | 54 | 454 |
2 | Feb 25 12:40:22 | 5000 | 12 | 2 | 242 | 5 | 67 | 499 |
3 | Feb 25 12:40:27 | 5000 | 7 | 32 | 189 | 8 | 60 | 413 |
4 | Feb 25 12:40:32 | 5000 | 18 | 21 | 310 | 3 | 78 | 505 |
5 | Feb 25 12:40:37 | 5000 | 22 | 17 | 233 | 6 | 65 | 569 |
dframe[['nummessages','numtmessages']]
nummessages | numtmessages | |
---|---|---|
0 | 241 | 2 |
1 | 247 | 3 |
2 | 242 | 5 |
3 | 189 | 8 |
4 | 310 | 3 |
5 | 233 | 6 |
dframe2 = pd.DataFrame(dframe,columns=['numcycles','numtimeouts','nummessages','numtmessages'])
dframe2
numcycles | numtimeouts | nummessages | numtmessages | |
---|---|---|---|---|
0 | 173 | 89 | 241 | 2 |
1 | 17 | 82 | 247 | 3 |
2 | 12 | 2 | 242 | 5 |
3 | 7 | 32 | 189 | 8 |
4 | 18 | 21 | 310 | 3 |
5 | 22 | 17 | 233 | 6 |
dframe2.describe()
numcycles | numtimeouts | nummessages | numtmessages | |
---|---|---|---|---|
count | 6.000000 | 6.000000 | 6.000000 | 6.000000 |
mean | 41.500000 | 40.500000 | 243.666667 | 4.500000 |
std | 64.630488 | 36.225681 | 38.790033 | 2.258318 |
min | 7.000000 | 2.000000 | 189.000000 | 2.000000 |
25% | 13.250000 | 18.000000 | 235.000000 | 3.000000 |
50% | 17.500000 | 26.500000 | 241.500000 | 4.000000 |
75% | 21.000000 | 69.500000 | 245.750000 | 5.750000 |
max | 173.000000 | 89.000000 | 310.000000 | 8.000000 |
dframe2.index
Int64Index([0, 1, 2, 3, 4, 5], dtype='int64')
matplotlib.style.use('ggplot')
rcParams['figure.figsize'] = 10, 5 # width, height in inches
dframe2.plot()
legend()
<matplotlib.legend.Legend at 0xdfeaddbc50>
dframe
serverDateTime | interval | numcycles | numtimeouts | nummessages | numtmessages | numdescriptors | num-timers | |
---|---|---|---|---|---|---|---|---|
0 | Feb 25 12:40:12 | 5000 | 173 | 89 | 241 | 2 | 48 | 439 |
1 | Feb 25 12:40:17 | 5000 | 17 | 82 | 247 | 3 | 54 | 454 |
2 | Feb 25 12:40:22 | 5000 | 12 | 2 | 242 | 5 | 67 | 499 |
3 | Feb 25 12:40:27 | 5000 | 7 | 32 | 189 | 8 | 60 | 413 |
4 | Feb 25 12:40:32 | 5000 | 18 | 21 | 310 | 3 | 78 | 505 |
5 | Feb 25 12:40:37 | 5000 | 22 | 17 | 233 | 6 | 65 | 569 |
dframe.index
Int64Index([0, 1, 2, 3, 4, 5], dtype='int64')
dframe['interval'] = dframe['interval']/1000
dframe['numcycles']=dframe['numcycles']/5
dframe['numtimeouts']=dframe['numtimeouts']/5
dframe['nummessages']=dframe['nummessages']/5
dframe['numtmessages']=dframe['numtmessages']/5
dframe['serverDateTime'] = pd.to_datetime(dframe['serverDateTime'],format='%b %d %H:%M:%S')
dframe['serverDateTime'].dt.year
dframe['serverDateTime']
0 1900-02-25 12:40:12 1 1900-02-25 12:40:17 2 1900-02-25 12:40:22 3 1900-02-25 12:40:27 4 1900-02-25 12:40:32 5 1900-02-25 12:40:37 Name: serverDateTime, dtype: datetime64[ns]
dframe['serverDateTime'] = dframe['serverDateTime'].map(lambda t: t.replace(year=2015))
dframe['serverDateTime'].dt.year
dframe['serverDateTime']
0 2015-02-25 12:40:12 1 2015-02-25 12:40:17 2 2015-02-25 12:40:22 3 2015-02-25 12:40:27 4 2015-02-25 12:40:32 5 2015-02-25 12:40:37 Name: serverDateTime, dtype: datetime64[ns]
#dframe.set_index('serverDateTime', drop=False, verify_integrity=True)
dframe.set_index('serverDateTime', drop=False, inplace=True)
dframe
serverDateTime | interval | numcycles | numtimeouts | nummessages | numtmessages | numdescriptors | num-timers | |
---|---|---|---|---|---|---|---|---|
serverDateTime | ||||||||
2015-02-25 12:40:12 | 2015-02-25 12:40:12 | 5 | 34.6 | 17.8 | 48.2 | 0.4 | 48 | 439 |
2015-02-25 12:40:17 | 2015-02-25 12:40:17 | 5 | 3.4 | 16.4 | 49.4 | 0.6 | 54 | 454 |
2015-02-25 12:40:22 | 2015-02-25 12:40:22 | 5 | 2.4 | 0.4 | 48.4 | 1.0 | 67 | 499 |
2015-02-25 12:40:27 | 2015-02-25 12:40:27 | 5 | 1.4 | 6.4 | 37.8 | 1.6 | 60 | 413 |
2015-02-25 12:40:32 | 2015-02-25 12:40:32 | 5 | 3.6 | 4.2 | 62.0 | 0.6 | 78 | 505 |
2015-02-25 12:40:37 | 2015-02-25 12:40:37 | 5 | 4.4 | 3.4 | 46.6 | 1.2 | 65 | 569 |
dframe.index
DatetimeIndex(['2015-02-25 12:40:12', '2015-02-25 12:40:17', '2015-02-25 12:40:22', '2015-02-25 12:40:27', '2015-02-25 12:40:32', '2015-02-25 12:40:37'], dtype='datetime64[ns]', name='serverDateTime', freq=None)
# DataFrame.resample will show NaN rows. We are copying dframe to a new one in order to avoid issues afterwards
# (pd.notnull not working properly)
dframe10s = dframe.copy(deep=True)
#dframe.resample('10min', how='sum')
#dframe10s.resample('10S', how='sum') # 10S = 10 seconds
dframe10s.resample('10S', how='mean') # 10S = 10 seconds, mean = average
#dframe10s[pd.notnull(dframe10s.resample('10S', how='mean'))]
#dframe10s[np.isfinite(dframe10s.resample('10S', how='mean'))]
interval | numcycles | numtimeouts | nummessages | numtmessages | numdescriptors | num-timers | |
---|---|---|---|---|---|---|---|
serverDateTime | |||||||
2015-02-25 12:40:10 | 5 | 19.0 | 17.1 | 48.8 | 0.5 | 51.0 | 446.5 |
2015-02-25 12:40:20 | 5 | 1.9 | 3.4 | 43.1 | 1.3 | 63.5 | 456.0 |
2015-02-25 12:40:30 | 5 | 4.0 | 3.8 | 54.3 | 0.9 | 71.5 | 537.0 |
dframe
serverDateTime | interval | numcycles | numtimeouts | nummessages | numtmessages | numdescriptors | num-timers | |
---|---|---|---|---|---|---|---|---|
serverDateTime | ||||||||
2015-02-25 12:40:12 | 2015-02-25 12:40:12 | 5 | 34.6 | 17.8 | 48.2 | 0.4 | 48 | 439 |
2015-02-25 12:40:17 | 2015-02-25 12:40:17 | 5 | 3.4 | 16.4 | 49.4 | 0.6 | 54 | 454 |
2015-02-25 12:40:22 | 2015-02-25 12:40:22 | 5 | 2.4 | 0.4 | 48.4 | 1.0 | 67 | 499 |
2015-02-25 12:40:27 | 2015-02-25 12:40:27 | 5 | 1.4 | 6.4 | 37.8 | 1.6 | 60 | 413 |
2015-02-25 12:40:32 | 2015-02-25 12:40:32 | 5 | 3.6 | 4.2 | 62.0 | 0.6 | 78 | 505 |
2015-02-25 12:40:37 | 2015-02-25 12:40:37 | 5 | 4.4 | 3.4 | 46.6 | 1.2 | 65 | 569 |
dframe.index
DatetimeIndex(['2015-02-25 12:40:12', '2015-02-25 12:40:17', '2015-02-25 12:40:22', '2015-02-25 12:40:27', '2015-02-25 12:40:32', '2015-02-25 12:40:37'], dtype='datetime64[ns]', name='serverDateTime', freq=None)
def func(group):
return pd.Series({'numcycles': group.numcycles.sum(), 'numtimeouts': group.numtimeouts.sum(),
'nummessages': group.nummessages.sum(), 'numtmessages': group.numtmessages.sum(), 'serverDateTime': group.index[1],
'Period': '{0} - {1}'.format(group.index[0].date(), group.index[-1].date())})
dframe.groupby(lambda idx: idx.hour).apply(func)
Period | numcycles | nummessages | numtimeouts | numtmessages | serverDateTime | |
---|---|---|---|---|---|---|
12 | 2015-02-25 - 2015-02-25 | 49.8 | 292.4 | 48.6 | 5.4 | 2015-02-25 12:40:17 |
dframe
serverDateTime | interval | numcycles | numtimeouts | nummessages | numtmessages | numdescriptors | num-timers | |
---|---|---|---|---|---|---|---|---|
serverDateTime | ||||||||
2015-02-25 12:40:12 | 2015-02-25 12:40:12 | 5 | 34.6 | 17.8 | 48.2 | 0.4 | 48 | 439 |
2015-02-25 12:40:17 | 2015-02-25 12:40:17 | 5 | 3.4 | 16.4 | 49.4 | 0.6 | 54 | 454 |
2015-02-25 12:40:22 | 2015-02-25 12:40:22 | 5 | 2.4 | 0.4 | 48.4 | 1.0 | 67 | 499 |
2015-02-25 12:40:27 | 2015-02-25 12:40:27 | 5 | 1.4 | 6.4 | 37.8 | 1.6 | 60 | 413 |
2015-02-25 12:40:32 | 2015-02-25 12:40:32 | 5 | 3.6 | 4.2 | 62.0 | 0.6 | 78 | 505 |
2015-02-25 12:40:37 | 2015-02-25 12:40:37 | 5 | 4.4 | 3.4 | 46.6 | 1.2 | 65 | 569 |
dframe10min = dframe.copy(deep=True)
dframe10min.resample('10min', how='sum')
interval | numcycles | numtimeouts | nummessages | numtmessages | numdescriptors | num-timers | |
---|---|---|---|---|---|---|---|
serverDateTime | |||||||
2015-02-25 12:40:00 | 30 | 49.8 | 48.6 | 292.4 | 5.4 | 372 | 2879 |
dframe
serverDateTime | interval | numcycles | numtimeouts | nummessages | numtmessages | numdescriptors | num-timers | |
---|---|---|---|---|---|---|---|---|
serverDateTime | ||||||||
2015-02-25 12:40:12 | 2015-02-25 12:40:12 | 5 | 34.6 | 17.8 | 48.2 | 0.4 | 48 | 439 |
2015-02-25 12:40:17 | 2015-02-25 12:40:17 | 5 | 3.4 | 16.4 | 49.4 | 0.6 | 54 | 454 |
2015-02-25 12:40:22 | 2015-02-25 12:40:22 | 5 | 2.4 | 0.4 | 48.4 | 1.0 | 67 | 499 |
2015-02-25 12:40:27 | 2015-02-25 12:40:27 | 5 | 1.4 | 6.4 | 37.8 | 1.6 | 60 | 413 |
2015-02-25 12:40:32 | 2015-02-25 12:40:32 | 5 | 3.6 | 4.2 | 62.0 | 0.6 | 78 | 505 |
2015-02-25 12:40:37 | 2015-02-25 12:40:37 | 5 | 4.4 | 3.4 | 46.6 | 1.2 | 65 | 569 |
dframe.index
DatetimeIndex(['2015-02-25 12:40:12', '2015-02-25 12:40:17', '2015-02-25 12:40:22', '2015-02-25 12:40:27', '2015-02-25 12:40:32', '2015-02-25 12:40:37'], dtype='datetime64[ns]', name='serverDateTime', freq=None)
dframe['numcycles'].value_counts()
4.4 1 3.6 1 2.4 1 3.4 1 34.6 1 1.4 1 Name: numcycles, dtype: int64
dframe[(dframe.numtimeouts < 17) & (dframe.numtimeouts > 5)]
serverDateTime | interval | numcycles | numtimeouts | nummessages | numtmessages | numdescriptors | num-timers | |
---|---|---|---|---|---|---|---|---|
serverDateTime | ||||||||
2015-02-25 12:40:17 | 2015-02-25 12:40:17 | 5 | 3.4 | 16.4 | 49.4 | 0.6 | 54 | 454 |
2015-02-25 12:40:27 | 2015-02-25 12:40:27 | 5 | 1.4 | 6.4 | 37.8 | 1.6 | 60 | 413 |
dframe[(dframe.numtimeouts < 17) & (dframe.numtimeouts > 5)] [['numtimeouts']]
numtimeouts | |
---|---|
serverDateTime | |
2015-02-25 12:40:17 | 16.4 |
2015-02-25 12:40:27 | 6.4 |
dframe[dframe['numtimeouts']>6]
serverDateTime | interval | numcycles | numtimeouts | nummessages | numtmessages | numdescriptors | num-timers | |
---|---|---|---|---|---|---|---|---|
serverDateTime | ||||||||
2015-02-25 12:40:12 | 2015-02-25 12:40:12 | 5 | 34.6 | 17.8 | 48.2 | 0.4 | 48 | 439 |
2015-02-25 12:40:17 | 2015-02-25 12:40:17 | 5 | 3.4 | 16.4 | 49.4 | 0.6 | 54 | 454 |
2015-02-25 12:40:27 | 2015-02-25 12:40:27 | 5 | 1.4 | 6.4 | 37.8 | 1.6 | 60 | 413 |
if ~dframe[dframe['numtimeouts']>6].empty:
print('DataFrame contains rows with numtimeouts bigger than threshold!')
#dframe3 = dframe[dframe['numtimeouts']>6]
#dframe3 is not None and isinstance(dframe3, pd.DataFrame) and not dframe3.empty
DataFrame contains rows with numtimeouts bigger than threshold!
dframe.ix['2015-02-25 12:40:17']
serverDateTime | interval | numcycles | numtimeouts | nummessages | numtmessages | numdescriptors | num-timers | |
---|---|---|---|---|---|---|---|---|
serverDateTime | ||||||||
2015-02-25 12:40:17 | 2015-02-25 12:40:17 | 5 | 3.4 | 16.4 | 49.4 | 0.6 | 54 | 454 |
rcParams['figure.figsize'] = 10, 5 # width, height in inches
#df_s = dframe['numcycles'].resample('1S', how='sum')
#df_s.plot()
dframe.plot()
legend()
<matplotlib.legend.Legend at 0xdfefc59dd8>
#dframe.resample("1D", how="sum")
dframe['numcycles'].plot()
legend()
<matplotlib.legend.Legend at 0xdfefd70550>
plt.figure();dframe.plot();
<matplotlib.figure.Figure at 0xdfefddd6a0>
dframe.plot(x='serverDateTime',y='numdescriptors')
<matplotlib.axes._subplots.AxesSubplot at 0xdfefe14eb8>
sns.lmplot('numtimeouts','nummessages', data=dframe, fit_reg=False)
C:\Anaconda3\lib\site-packages\matplotlib\__init__.py:892: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter. warnings.warn(self.msg_depr % (key, alt_key))
<seaborn.axisgrid.FacetGrid at 0xdff08dff28>
sns.kdeplot(dframe.nummessages)
<matplotlib.axes._subplots.AxesSubplot at 0xdff0a8eac8>
sns.kdeplot(dframe.nummessages, dframe.numtimeouts)
<matplotlib.axes._subplots.AxesSubplot at 0xdff09785c0>
sns.distplot(dframe.nummessages)
<matplotlib.axes._subplots.AxesSubplot at 0xdff09d0550>
plt.hist(dframe.nummessages, alpha = .3)
sns.rugplot(dframe.nummessages);
sns.violinplot([dframe.numtimeouts,dframe.nummessages])
C:\Anaconda3\lib\site-packages\matplotlib\__init__.py:892: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter. warnings.warn(self.msg_depr % (key, alt_key))
<matplotlib.axes._subplots.AxesSubplot at 0xdff0b1a160>
sns.heatmap([dframe.numtimeouts,dframe.nummessages], annot=True, fmt="f")
<matplotlib.axes._subplots.AxesSubplot at 0xdff0baea90>
from pandas.compat import StringIO
from pandas.io.common import urlopen
from IPython.display import display, display_pretty, Javascript, HTML
from pandas_highcharts.core import serialize
from pandas_highcharts.display import display_charts
display_charts(dframe, title="logs")
display_charts(dframe, kind="bar", title="rate")
display_charts(dframe, kind="barh", title="rate")
display_charts(dframe, title="rate", legend=None, kind="bar", figsize = (1000, 700))
display_charts(dframe, title="rate", kind="bar", render_to="chart5", zoom="xy")