SlideShare a Scribd company logo
Logging and
ranting
Or how to trim your bush
Hi, my name is Vytis and I have a story
Structured list of rants
● Concept of events
● Benefits of structure
● Poor man’s event tracing
● Debug logging in production
Structured list of rants
● Concept of events
● Benefits of structure
● Poor man’s event tracing
● Debug logging in production
… anyone here runs docker in production?
Why do people log?
● To ensure their application is running
● To debug running application
● To see activity traces
● To see errors or edge cases manifesting
● To gather audit information
● To collect runtime metrics/usage patterns
… ordered by subjective importance
How do people log?
● STDOUT
● STDERR
● FILE
● NETWORK
● UNIX SOCKET
How do people log?
● STDOUT
● STDERR
● FILE
● NETWORK
● UNIX SOCKET
Protocol?
Library?
Endpoints?
Path?
Retention?
TCP/UDP?
Security?
…?
STDOUTapplication aggregator
STDOUT
STDERR
application aggregator
But why…?
Because...
1. By decoupling logging transport from application you enable other team(s) to
ensure your logs get to a central place without any effort from your side
2. By having log transport not bound to complicated assumptions your
application is more portable
3. By forcing yourself away from standard logging protocols (... did I mention I
am not a fan of RFC-5424?) you can use elegant data encoding options (...
but I like JSON?)
Because...
TL;DR
Because...
1. ELK…
2. … meets DOCKER
3. … and JSON logs
application JSON
[this advertisement was funded by Lamoda]
CLS™
application JSON
[this advertisement was funded by Lamoda]
CLS™
Containers under docker
Applications under JVM
...
application JSON
[but it advertised ELK stack :D]
CLS™
Containers under docker
Applications under JVM
...
Basically vanilla ELK
… a moment of silence for PHP devs
...yes, php-fpm trims stdio output to 1024 symbols.
NETWORK
UNIX SOCKET
application aggregator
$ env
...
SYSLOG_ENDPOINT=/var/log/cls.sock
...
$ cat /etc/rsyslog.conf
...
action(type="mmjsonparse" cookie="")
...
NETWORK
UNIX SOCKET
application aggregator
$ env
...
SYSLOG_ENDPOINT=/var/log/cls.sock
...
$ cat /etc/rsyslog.conf
...
action(type="mmjsonparse" cookie="")
...
PROPERTY
AUTHO
RISED
USE
O
NLY
ENVIRO
NM
ENTAL
And now we start ranting!
SEND DEBUGS
~30k msg/s
~2k rps
~200GB/h
~32TB/week
+3000$/month
… only data storage.
...а давай нет?
More points on debug logs
● Usually you filter out the crap and only look for understandable logs
○ Searching for needle in a barn is not a fun activity
More points on debug logs
● Usually you filter out the crap and only look for understandable logs
○ Searching for needle in a barn is not a fun activity
● Logs are not a good place to store sensitive data
○ “user %s authorised with password %s bought item SKU#%s” is my favourite.
More points on debug logs
● Usually you filter out the crap and only look for understandable logs
○ Searching for needle in a barn is not a fun activity
● Logs are not a good place to store sensitive data
○ “user %s authorised with password %s bought item SKU#%s” is my favourite.
● You want to see patterns, not individual errors
○ “%s caught for %s user, while in %s” is hard to find, when you are not 100% certain what are
you looking for
○ “exception caught in purchase pipeline” is better, I’ll cover the details in next topic.
STRUCTURE
[pid: 5151|app: 0|req: 2166118/25642392] 10.5.244.32 () {42 vars in 865 bytes} [Wed
Jul 19 18:54:39 2017] GET
/api/v1/pp_preview/?models=reviews%2Cquestions&sku=XXXXXXXXXXX&limit=50&country=by =>
generated 1285 bytes in 20 msecs (HTTP/1.0 200) 5 headers in 154 bytes (1 switches on
core 0)
{“pid”: 5151, “req_n”: 2166118, “source_ip”: “10.5.244.32”, “response_size”: 1285,
“timestamp”: “2017-07-19T18:54:39Z”, “http_method”: “GET”,
“http_url”:”/api/v1/pp_preview/?models=reviews%2Cquestions&sku=XXXXXXXXXXX&limit=50&c
ountry=by”, “response_time”: “0.02”, ... }
VS
{“pid”: 5151, “req_n”: 2166118, “source_ip”: “10.5.244.32”, “response_size”: 1285,
“timestamp”: “2017-07-19T18:54:39Z”, “http_method”: “GET”,
“http_url”:”/api/v1/pp_preview/?models=reviews%2Cquestions&sku=XXXXXXXXXXX&limit=50&c
ountry=by”, “response_time”: “0.02”, ... }
[pid: 5151|app: 0|req: 2166118/25642392] 10.5.244.32 () {42 vars in 865 bytes} [Wed
Jul 19 18:54:39 2017] GET
/api/v1/pp_preview/?models=reviews%2Cquestions&sku=XXXXXXXXXXX&limit=50&country=by =>
generated 1285 bytes in 20 msecs (HTTP/1.0 200) 5 headers in 154 bytes (1 switches on
core 0)
VS
$ open "goo.gl/RS43Rg"
$ npm install -g bunyan
$ brew install jq
… structure with benefits ...
● Understanding/predicting necessary information
○ Do you need a particular field?
○ Is it useful now?
○ How about future?
○ What can you aggregate from a field?
● Think about aggregations
○ Average over time? You need a number.
○ Histogram on field? You need limited set of possible values.
○ Pie chart? Limited set of values.
○ … (yes, I don’t mention geo based aggregations, because you can google that one out)
NEW RELIC
… no, they don’t pay me … yet.
Poor Man’s tracing
map $http_x_trace_id $trace_id {
'' $request_id;
default $http_x_trace_id;
}
...
proxy_set_header X-Trace-Id $trace_id;
Rich Man’s tracing
● There is a number of libraries (including newrelic) which provide the same
functionality
● End result is similar: You see what parts are touched in a single operation
… yes, I shamelessly trimmed the output.
… a bush
client
… trimmed to a fir
client
Why tracing?
● For Lamoda it was used to figure out which system in the chain forces the
process to timeout.
○ Request returns 504
○ Request touches 8 subsystems
○ Somewhere in the chain nginx is configured with proxy_read_timeout 500ms;
○ None of individual systems show response durations higher than 500ms
○ … but the sum of a chain below the capped nginx -- is higher than 500ms!
● Also it helps to find reasons for failing requests
○ Because sometimes you just don’t know the dependencies of two systems
○ When you have multiple services responsible for a request handling, you are deemed to have
a bad time managing your dependencies
EVENTS
… you know, second coming...
Event examples
● A user clicks on a button
● A hard disk driver emits a failure code
● Aggregation of response time is larger than X for last Y
● Scheduled alarm clock goes off
… yes, every morning is an event in this sense...
Event anti-examples
● User clicked 15 buttons on average
● Hard disk is spinning normally
● Response time aggregation is X
● This morning it took me 3 alarms to get out of bed
event metric
analysis
aggregation
event metric
analysis
aggregationreaction
event metric
analysis
aggregationreaction
inspection
event metric
analysis
aggregationreaction
inspection
Structured list of rants
● Concept of events
● Benefits of structure
● Poor man’s event tracing
● Debug logging in production
Summarized list of rants
● A log message is an event
○ Events can be aggregated to extract metrics
○ Metrics can be analysed to figure out complex events
● Structured events are easier to aggregate
○ Less parsing == more throughput
● “X-Trace-ID: ***” … it is just a neat trick when you need to …
● … find a gold nugget in a pile of …
Summarized list of rants
● A log message is an event
○ Events can be aggregated to extract metrics
○ Metrics can be analysed to figure out complex events
● Structured events are easier to aggregate
○ Less parsing == more throughput
● “X-Trace-ID: ***” … it is just a neat trick when you need to …
● … find a gold nugget in a pile of debug logs.
… questions?
… I retain the right to silently ignore difficult ones
vytis.valentinavicius@lamoda.lt, also go look at http://tech.lamoda.ru/
… questions?
… and as promised, CLS™ architecture!
scalable
highly available
cloud ready
much buzzword
open source
solutionCLS™
LOGS UNICORNS
strong ES
strong ES
strong ES
log source
rsyslogd
syslog-ng
kafka
kafka
kafka
kafka
fluentd
logstash
logstash
logstash
strong ES
weak ES
weak ES
weak ES
weak ES
cold ES
cold ES
cold ES
cold ES
Producers Entry
buffer
indexers readonly archives
Mutators
Filters
Parsers
ElasticSearch Store

More Related Content

Viewers also liked

HPC DAY 2017 | HPE Storage and Data Management for Big Data
HPC DAY 2017 | HPE Storage and Data Management for Big DataHPC DAY 2017 | HPE Storage and Data Management for Big Data
HPC DAY 2017 | HPE Storage and Data Management for Big Data
HPC DAY
 
Database Security Threats - MariaDB Security Best Practices
Database Security Threats - MariaDB Security Best PracticesDatabase Security Threats - MariaDB Security Best Practices
Database Security Threats - MariaDB Security Best Practices
MariaDB plc
 
Raspberry home server
Raspberry home serverRaspberry home server
Raspberry home server
Massimiliano Perrone
 
Latency tracing in distributed Java applications
Latency tracing in distributed Java applicationsLatency tracing in distributed Java applications
Latency tracing in distributed Java applications
Constantine Slisenka
 
Java on the GPU: Where are we now?
Java on the GPU: Where are we now?Java on the GPU: Where are we now?
Java on the GPU: Where are we now?
Dmitry Alexandrov
 
HPC DAY 2017 | NVIDIA Volta Architecture. Performance. Efficiency. Availability
HPC DAY 2017 | NVIDIA Volta Architecture. Performance. Efficiency. AvailabilityHPC DAY 2017 | NVIDIA Volta Architecture. Performance. Efficiency. Availability
HPC DAY 2017 | NVIDIA Volta Architecture. Performance. Efficiency. Availability
HPC DAY
 
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...
Benoit Combemale
 
HPC DAY 2017 | HPE Strategy And Portfolio for AI, BigData and HPC
HPC DAY 2017 | HPE Strategy And Portfolio for AI, BigData and HPCHPC DAY 2017 | HPE Strategy And Portfolio for AI, BigData and HPC
HPC DAY 2017 | HPE Strategy And Portfolio for AI, BigData and HPC
HPC DAY
 
HPC DAY 2017 | Prometheus - energy efficient supercomputing
HPC DAY 2017 | Prometheus - energy efficient supercomputingHPC DAY 2017 | Prometheus - energy efficient supercomputing
HPC DAY 2017 | Prometheus - energy efficient supercomputing
HPC DAY
 
HPC DAY 2017 | Accelerating tomorrow's HPC and AI workflows with Intel Archit...
HPC DAY 2017 | Accelerating tomorrow's HPC and AI workflows with Intel Archit...HPC DAY 2017 | Accelerating tomorrow's HPC and AI workflows with Intel Archit...
HPC DAY 2017 | Accelerating tomorrow's HPC and AI workflows with Intel Archit...
HPC DAY
 
Libnetwork updates
Libnetwork updatesLibnetwork updates
Libnetwork updates
Moby Project
 
HPC DAY 2017 | Altair's PBS Pro: Your Gateway to HPC Computing
HPC DAY 2017 | Altair's PBS Pro: Your Gateway to HPC ComputingHPC DAY 2017 | Altair's PBS Pro: Your Gateway to HPC Computing
HPC DAY 2017 | Altair's PBS Pro: Your Gateway to HPC Computing
HPC DAY
 
LinuxKit and OpenOverlay
LinuxKit and OpenOverlayLinuxKit and OpenOverlay
LinuxKit and OpenOverlay
Moby Project
 
GPU databases - How to use them and what the future holds
GPU databases - How to use them and what the future holdsGPU databases - How to use them and what the future holds
GPU databases - How to use them and what the future holds
Arnon Shimoni
 
Design patterns in Java - Monitis 2017
Design patterns in Java - Monitis 2017Design patterns in Java - Monitis 2017
Design patterns in Java - Monitis 2017
Arsen Gasparyan
 
Getting Started with Embedded Python: MicroPython and CircuitPython
Getting Started with Embedded Python: MicroPython and CircuitPythonGetting Started with Embedded Python: MicroPython and CircuitPython
Getting Started with Embedded Python: MicroPython and CircuitPython
Ayan Pahwa
 
An Introduction to OMNeT++ 5.1
An Introduction to OMNeT++ 5.1An Introduction to OMNeT++ 5.1
An Introduction to OMNeT++ 5.1
Alpen-Adria-Universität
 
Drive into calico architecture
Drive into calico architectureDrive into calico architecture
Drive into calico architecture
Anirban Sen Chowdhary
 
Vertx
VertxVertx
세션1. block chain as a platform
세션1. block chain as a platform세션1. block chain as a platform
세션1. block chain as a platform
Jay JH Park
 

Viewers also liked (20)

HPC DAY 2017 | HPE Storage and Data Management for Big Data
HPC DAY 2017 | HPE Storage and Data Management for Big DataHPC DAY 2017 | HPE Storage and Data Management for Big Data
HPC DAY 2017 | HPE Storage and Data Management for Big Data
 
Database Security Threats - MariaDB Security Best Practices
Database Security Threats - MariaDB Security Best PracticesDatabase Security Threats - MariaDB Security Best Practices
Database Security Threats - MariaDB Security Best Practices
 
Raspberry home server
Raspberry home serverRaspberry home server
Raspberry home server
 
Latency tracing in distributed Java applications
Latency tracing in distributed Java applicationsLatency tracing in distributed Java applications
Latency tracing in distributed Java applications
 
Java on the GPU: Where are we now?
Java on the GPU: Where are we now?Java on the GPU: Where are we now?
Java on the GPU: Where are we now?
 
HPC DAY 2017 | NVIDIA Volta Architecture. Performance. Efficiency. Availability
HPC DAY 2017 | NVIDIA Volta Architecture. Performance. Efficiency. AvailabilityHPC DAY 2017 | NVIDIA Volta Architecture. Performance. Efficiency. Availability
HPC DAY 2017 | NVIDIA Volta Architecture. Performance. Efficiency. Availability
 
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...
 
HPC DAY 2017 | HPE Strategy And Portfolio for AI, BigData and HPC
HPC DAY 2017 | HPE Strategy And Portfolio for AI, BigData and HPCHPC DAY 2017 | HPE Strategy And Portfolio for AI, BigData and HPC
HPC DAY 2017 | HPE Strategy And Portfolio for AI, BigData and HPC
 
HPC DAY 2017 | Prometheus - energy efficient supercomputing
HPC DAY 2017 | Prometheus - energy efficient supercomputingHPC DAY 2017 | Prometheus - energy efficient supercomputing
HPC DAY 2017 | Prometheus - energy efficient supercomputing
 
HPC DAY 2017 | Accelerating tomorrow's HPC and AI workflows with Intel Archit...
HPC DAY 2017 | Accelerating tomorrow's HPC and AI workflows with Intel Archit...HPC DAY 2017 | Accelerating tomorrow's HPC and AI workflows with Intel Archit...
HPC DAY 2017 | Accelerating tomorrow's HPC and AI workflows with Intel Archit...
 
Libnetwork updates
Libnetwork updatesLibnetwork updates
Libnetwork updates
 
HPC DAY 2017 | Altair's PBS Pro: Your Gateway to HPC Computing
HPC DAY 2017 | Altair's PBS Pro: Your Gateway to HPC ComputingHPC DAY 2017 | Altair's PBS Pro: Your Gateway to HPC Computing
HPC DAY 2017 | Altair's PBS Pro: Your Gateway to HPC Computing
 
LinuxKit and OpenOverlay
LinuxKit and OpenOverlayLinuxKit and OpenOverlay
LinuxKit and OpenOverlay
 
GPU databases - How to use them and what the future holds
GPU databases - How to use them and what the future holdsGPU databases - How to use them and what the future holds
GPU databases - How to use them and what the future holds
 
Design patterns in Java - Monitis 2017
Design patterns in Java - Monitis 2017Design patterns in Java - Monitis 2017
Design patterns in Java - Monitis 2017
 
Getting Started with Embedded Python: MicroPython and CircuitPython
Getting Started with Embedded Python: MicroPython and CircuitPythonGetting Started with Embedded Python: MicroPython and CircuitPython
Getting Started with Embedded Python: MicroPython and CircuitPython
 
An Introduction to OMNeT++ 5.1
An Introduction to OMNeT++ 5.1An Introduction to OMNeT++ 5.1
An Introduction to OMNeT++ 5.1
 
Drive into calico architecture
Drive into calico architectureDrive into calico architecture
Drive into calico architecture
 
Vertx
VertxVertx
Vertx
 
세션1. block chain as a platform
세션1. block chain as a platform세션1. block chain as a platform
세션1. block chain as a platform
 

Similar to Logging and ranting / Vytis Valentinavičius (Lamoda)

Monitoring Big Data Systems - "The Simple Way"
Monitoring Big Data Systems - "The Simple Way"Monitoring Big Data Systems - "The Simple Way"
Monitoring Big Data Systems - "The Simple Way"
Demi Ben-Ari
 
Pen Testing Development
Pen Testing DevelopmentPen Testing Development
Pen Testing Development
CTruncer
 
Data corruption
Data corruptionData corruption
Data corruption
Tomas Vondra
 
Scalable, good, cheap
Scalable, good, cheapScalable, good, cheap
Scalable, good, cheap
Marc Cluet
 
Security Monitoring for big Infrastructures without a Million Dollar budget
Security Monitoring for big Infrastructures without a Million Dollar budgetSecurity Monitoring for big Infrastructures without a Million Dollar budget
Security Monitoring for big Infrastructures without a Million Dollar budget
Juan Berner
 
PyConUK 2014 - PostMortem Debugging and Web Development Updated
PyConUK 2014 - PostMortem Debugging and Web Development UpdatedPyConUK 2014 - PostMortem Debugging and Web Development Updated
PyConUK 2014 - PostMortem Debugging and Web Development Updated
Alessandro Molina
 
Tips & Tricks to Survive from “Big” Data
Tips & Tricks to Survive from “Big” DataTips & Tricks to Survive from “Big” Data
Tips & Tricks to Survive from “Big” Data
Fei Zhan
 
Validating big data pipelines - FOSDEM 2019
Validating big data pipelines -  FOSDEM 2019Validating big data pipelines -  FOSDEM 2019
Validating big data pipelines - FOSDEM 2019
Holden Karau
 
Do you have an "analytics"? How analytics tools work
Do you have an "analytics"? How analytics tools workDo you have an "analytics"? How analytics tools work
Do you have an "analytics"? How analytics tools work
SPLYT
 
Elasticsearch Performance Testing and Scaling @ Signal
Elasticsearch Performance Testing and Scaling @ SignalElasticsearch Performance Testing and Scaling @ Signal
Elasticsearch Performance Testing and Scaling @ Signal
Joachim Draeger
 
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB AtlasMongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB
 
Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
 Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark... Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
Databricks
 
Post-Mortem Debugging and Web Development
Post-Mortem Debugging and Web DevelopmentPost-Mortem Debugging and Web Development
Post-Mortem Debugging and Web Development
Alessandro Molina
 
Web stats
Web statsWeb stats
Web stats
Andrew Stevens
 
Eko10 - Security Monitoring for Big Infrastructures without a Million Dollar ...
Eko10 - Security Monitoring for Big Infrastructures without a Million Dollar ...Eko10 - Security Monitoring for Big Infrastructures without a Million Dollar ...
Eko10 - Security Monitoring for Big Infrastructures without a Million Dollar ...
Hernan Costante
 
Cloud accounting software uk
Cloud accounting software ukCloud accounting software uk
Cloud accounting software uk
Arcus Universe Ltd
 
Validating big data jobs - Spark AI Summit EU
Validating big data jobs  - Spark AI Summit EUValidating big data jobs  - Spark AI Summit EU
Validating big data jobs - Spark AI Summit EU
Holden Karau
 
"What we learned from 5 years of building a data science software that actual...
"What we learned from 5 years of building a data science software that actual..."What we learned from 5 years of building a data science software that actual...
"What we learned from 5 years of building a data science software that actual...
Dataconomy Media
 
Piano Media - approach to data gathering and processing
Piano Media - approach to data gathering and processingPiano Media - approach to data gathering and processing
Piano Media - approach to data gathering and processing
MartinStrycek
 
March 29, 2016 Dr. Josiah Carlson talks about using Redis as a Time Series DB
March 29, 2016 Dr. Josiah Carlson talks about using Redis as a Time Series DBMarch 29, 2016 Dr. Josiah Carlson talks about using Redis as a Time Series DB
March 29, 2016 Dr. Josiah Carlson talks about using Redis as a Time Series DB
Josiah Carlson
 

Similar to Logging and ranting / Vytis Valentinavičius (Lamoda) (20)

Monitoring Big Data Systems - "The Simple Way"
Monitoring Big Data Systems - "The Simple Way"Monitoring Big Data Systems - "The Simple Way"
Monitoring Big Data Systems - "The Simple Way"
 
Pen Testing Development
Pen Testing DevelopmentPen Testing Development
Pen Testing Development
 
Data corruption
Data corruptionData corruption
Data corruption
 
Scalable, good, cheap
Scalable, good, cheapScalable, good, cheap
Scalable, good, cheap
 
Security Monitoring for big Infrastructures without a Million Dollar budget
Security Monitoring for big Infrastructures without a Million Dollar budgetSecurity Monitoring for big Infrastructures without a Million Dollar budget
Security Monitoring for big Infrastructures without a Million Dollar budget
 
PyConUK 2014 - PostMortem Debugging and Web Development Updated
PyConUK 2014 - PostMortem Debugging and Web Development UpdatedPyConUK 2014 - PostMortem Debugging and Web Development Updated
PyConUK 2014 - PostMortem Debugging and Web Development Updated
 
Tips & Tricks to Survive from “Big” Data
Tips & Tricks to Survive from “Big” DataTips & Tricks to Survive from “Big” Data
Tips & Tricks to Survive from “Big” Data
 
Validating big data pipelines - FOSDEM 2019
Validating big data pipelines -  FOSDEM 2019Validating big data pipelines -  FOSDEM 2019
Validating big data pipelines - FOSDEM 2019
 
Do you have an "analytics"? How analytics tools work
Do you have an "analytics"? How analytics tools workDo you have an "analytics"? How analytics tools work
Do you have an "analytics"? How analytics tools work
 
Elasticsearch Performance Testing and Scaling @ Signal
Elasticsearch Performance Testing and Scaling @ SignalElasticsearch Performance Testing and Scaling @ Signal
Elasticsearch Performance Testing and Scaling @ Signal
 
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB AtlasMongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
 
Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
 Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark... Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
 
Post-Mortem Debugging and Web Development
Post-Mortem Debugging and Web DevelopmentPost-Mortem Debugging and Web Development
Post-Mortem Debugging and Web Development
 
Web stats
Web statsWeb stats
Web stats
 
Eko10 - Security Monitoring for Big Infrastructures without a Million Dollar ...
Eko10 - Security Monitoring for Big Infrastructures without a Million Dollar ...Eko10 - Security Monitoring for Big Infrastructures without a Million Dollar ...
Eko10 - Security Monitoring for Big Infrastructures without a Million Dollar ...
 
Cloud accounting software uk
Cloud accounting software ukCloud accounting software uk
Cloud accounting software uk
 
Validating big data jobs - Spark AI Summit EU
Validating big data jobs  - Spark AI Summit EUValidating big data jobs  - Spark AI Summit EU
Validating big data jobs - Spark AI Summit EU
 
"What we learned from 5 years of building a data science software that actual...
"What we learned from 5 years of building a data science software that actual..."What we learned from 5 years of building a data science software that actual...
"What we learned from 5 years of building a data science software that actual...
 
Piano Media - approach to data gathering and processing
Piano Media - approach to data gathering and processingPiano Media - approach to data gathering and processing
Piano Media - approach to data gathering and processing
 
March 29, 2016 Dr. Josiah Carlson talks about using Redis as a Time Series DB
March 29, 2016 Dr. Josiah Carlson talks about using Redis as a Time Series DBMarch 29, 2016 Dr. Josiah Carlson talks about using Redis as a Time Series DB
March 29, 2016 Dr. Josiah Carlson talks about using Redis as a Time Series DB
 

More from Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Ontico
 

More from Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Recently uploaded

ITSM Integration with MuleSoft.pptx
ITSM  Integration with MuleSoft.pptxITSM  Integration with MuleSoft.pptx
ITSM Integration with MuleSoft.pptx
VANDANAMOHANGOUDA
 
Supermarket Management System Project Report.pdf
Supermarket Management System Project Report.pdfSupermarket Management System Project Report.pdf
Supermarket Management System Project Report.pdf
Kamal Acharya
 
3rd International Conference on Artificial Intelligence Advances (AIAD 2024)
3rd International Conference on Artificial Intelligence Advances (AIAD 2024)3rd International Conference on Artificial Intelligence Advances (AIAD 2024)
3rd International Conference on Artificial Intelligence Advances (AIAD 2024)
GiselleginaGloria
 
Lateral load-resisting systems in buildings.pptx
Lateral load-resisting systems in buildings.pptxLateral load-resisting systems in buildings.pptx
Lateral load-resisting systems in buildings.pptx
DebendraDevKhanal1
 
Flow Through Pipe: the analysis of fluid flow within pipes
Flow Through Pipe:  the analysis of fluid flow within pipesFlow Through Pipe:  the analysis of fluid flow within pipes
Flow Through Pipe: the analysis of fluid flow within pipes
Indrajeet sahu
 
Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
Atif Razi
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
uqyfuc
 
A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...
A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...
A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...
DharmaBanothu
 
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
DharmaBanothu
 
Impartiality as per ISO /IEC 17025:2017 Standard
Impartiality as per ISO /IEC 17025:2017 StandardImpartiality as per ISO /IEC 17025:2017 Standard
Impartiality as per ISO /IEC 17025:2017 Standard
MuhammadJazib15
 
Asymmetrical Repulsion Magnet Motor Ratio 6-7.pdf
Asymmetrical Repulsion Magnet Motor Ratio 6-7.pdfAsymmetrical Repulsion Magnet Motor Ratio 6-7.pdf
Asymmetrical Repulsion Magnet Motor Ratio 6-7.pdf
felixwold
 
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
IJCNCJournal
 
Object Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOADObject Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOAD
PreethaV16
 
OOPS_Lab_Manual - programs using C++ programming language
OOPS_Lab_Manual - programs using C++ programming languageOOPS_Lab_Manual - programs using C++ programming language
OOPS_Lab_Manual - programs using C++ programming language
PreethaV16
 
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
nedcocy
 
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
upoux
 
Literature review for prompt engineering of ChatGPT.pptx
Literature review for prompt engineering of ChatGPT.pptxLiterature review for prompt engineering of ChatGPT.pptx
Literature review for prompt engineering of ChatGPT.pptx
LokerXu2
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
aryanpankaj78
 
Sachpazis_Consolidation Settlement Calculation Program-The Python Code and th...
Sachpazis_Consolidation Settlement Calculation Program-The Python Code and th...Sachpazis_Consolidation Settlement Calculation Program-The Python Code and th...
Sachpazis_Consolidation Settlement Calculation Program-The Python Code and th...
Dr.Costas Sachpazis
 
SMT process how to making and defects finding
SMT process how to making and defects findingSMT process how to making and defects finding
SMT process how to making and defects finding
rameshqapcba
 

Recently uploaded (20)

ITSM Integration with MuleSoft.pptx
ITSM  Integration with MuleSoft.pptxITSM  Integration with MuleSoft.pptx
ITSM Integration with MuleSoft.pptx
 
Supermarket Management System Project Report.pdf
Supermarket Management System Project Report.pdfSupermarket Management System Project Report.pdf
Supermarket Management System Project Report.pdf
 
3rd International Conference on Artificial Intelligence Advances (AIAD 2024)
3rd International Conference on Artificial Intelligence Advances (AIAD 2024)3rd International Conference on Artificial Intelligence Advances (AIAD 2024)
3rd International Conference on Artificial Intelligence Advances (AIAD 2024)
 
Lateral load-resisting systems in buildings.pptx
Lateral load-resisting systems in buildings.pptxLateral load-resisting systems in buildings.pptx
Lateral load-resisting systems in buildings.pptx
 
Flow Through Pipe: the analysis of fluid flow within pipes
Flow Through Pipe:  the analysis of fluid flow within pipesFlow Through Pipe:  the analysis of fluid flow within pipes
Flow Through Pipe: the analysis of fluid flow within pipes
 
Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...
A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...
A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...
 
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
 
Impartiality as per ISO /IEC 17025:2017 Standard
Impartiality as per ISO /IEC 17025:2017 StandardImpartiality as per ISO /IEC 17025:2017 Standard
Impartiality as per ISO /IEC 17025:2017 Standard
 
Asymmetrical Repulsion Magnet Motor Ratio 6-7.pdf
Asymmetrical Repulsion Magnet Motor Ratio 6-7.pdfAsymmetrical Repulsion Magnet Motor Ratio 6-7.pdf
Asymmetrical Repulsion Magnet Motor Ratio 6-7.pdf
 
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
 
Object Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOADObject Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOAD
 
OOPS_Lab_Manual - programs using C++ programming language
OOPS_Lab_Manual - programs using C++ programming languageOOPS_Lab_Manual - programs using C++ programming language
OOPS_Lab_Manual - programs using C++ programming language
 
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
 
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
 
Literature review for prompt engineering of ChatGPT.pptx
Literature review for prompt engineering of ChatGPT.pptxLiterature review for prompt engineering of ChatGPT.pptx
Literature review for prompt engineering of ChatGPT.pptx
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
 
Sachpazis_Consolidation Settlement Calculation Program-The Python Code and th...
Sachpazis_Consolidation Settlement Calculation Program-The Python Code and th...Sachpazis_Consolidation Settlement Calculation Program-The Python Code and th...
Sachpazis_Consolidation Settlement Calculation Program-The Python Code and th...
 
SMT process how to making and defects finding
SMT process how to making and defects findingSMT process how to making and defects finding
SMT process how to making and defects finding
 

Logging and ranting / Vytis Valentinavičius (Lamoda)

  • 1. Logging and ranting Or how to trim your bush
  • 2. Hi, my name is Vytis and I have a story
  • 3. Structured list of rants ● Concept of events ● Benefits of structure ● Poor man’s event tracing ● Debug logging in production
  • 4. Structured list of rants ● Concept of events ● Benefits of structure ● Poor man’s event tracing ● Debug logging in production … anyone here runs docker in production?
  • 5. Why do people log? ● To ensure their application is running ● To debug running application ● To see activity traces ● To see errors or edge cases manifesting ● To gather audit information ● To collect runtime metrics/usage patterns … ordered by subjective importance
  • 6. How do people log? ● STDOUT ● STDERR ● FILE ● NETWORK ● UNIX SOCKET
  • 7. How do people log? ● STDOUT ● STDERR ● FILE ● NETWORK ● UNIX SOCKET Protocol? Library? Endpoints? Path? Retention? TCP/UDP? Security? …?
  • 11. Because... 1. By decoupling logging transport from application you enable other team(s) to ensure your logs get to a central place without any effort from your side 2. By having log transport not bound to complicated assumptions your application is more portable 3. By forcing yourself away from standard logging protocols (... did I mention I am not a fan of RFC-5424?) you can use elegant data encoding options (... but I like JSON?)
  • 13. Because... 1. ELK… 2. … meets DOCKER 3. … and JSON logs
  • 14. application JSON [this advertisement was funded by Lamoda] CLS™
  • 15. application JSON [this advertisement was funded by Lamoda] CLS™ Containers under docker Applications under JVM ...
  • 16. application JSON [but it advertised ELK stack :D] CLS™ Containers under docker Applications under JVM ... Basically vanilla ELK
  • 17.
  • 18. … a moment of silence for PHP devs ...yes, php-fpm trims stdio output to 1024 symbols.
  • 19. NETWORK UNIX SOCKET application aggregator $ env ... SYSLOG_ENDPOINT=/var/log/cls.sock ... $ cat /etc/rsyslog.conf ... action(type="mmjsonparse" cookie="") ...
  • 20. NETWORK UNIX SOCKET application aggregator $ env ... SYSLOG_ENDPOINT=/var/log/cls.sock ... $ cat /etc/rsyslog.conf ... action(type="mmjsonparse" cookie="") ... PROPERTY AUTHO RISED USE O NLY ENVIRO NM ENTAL
  • 21. And now we start ranting!
  • 23.
  • 25.
  • 31. More points on debug logs ● Usually you filter out the crap and only look for understandable logs ○ Searching for needle in a barn is not a fun activity
  • 32.
  • 33. More points on debug logs ● Usually you filter out the crap and only look for understandable logs ○ Searching for needle in a barn is not a fun activity ● Logs are not a good place to store sensitive data ○ “user %s authorised with password %s bought item SKU#%s” is my favourite.
  • 34. More points on debug logs ● Usually you filter out the crap and only look for understandable logs ○ Searching for needle in a barn is not a fun activity ● Logs are not a good place to store sensitive data ○ “user %s authorised with password %s bought item SKU#%s” is my favourite. ● You want to see patterns, not individual errors ○ “%s caught for %s user, while in %s” is hard to find, when you are not 100% certain what are you looking for ○ “exception caught in purchase pipeline” is better, I’ll cover the details in next topic.
  • 36. [pid: 5151|app: 0|req: 2166118/25642392] 10.5.244.32 () {42 vars in 865 bytes} [Wed Jul 19 18:54:39 2017] GET /api/v1/pp_preview/?models=reviews%2Cquestions&sku=XXXXXXXXXXX&limit=50&country=by => generated 1285 bytes in 20 msecs (HTTP/1.0 200) 5 headers in 154 bytes (1 switches on core 0) {“pid”: 5151, “req_n”: 2166118, “source_ip”: “10.5.244.32”, “response_size”: 1285, “timestamp”: “2017-07-19T18:54:39Z”, “http_method”: “GET”, “http_url”:”/api/v1/pp_preview/?models=reviews%2Cquestions&sku=XXXXXXXXXXX&limit=50&c ountry=by”, “response_time”: “0.02”, ... } VS
  • 37. {“pid”: 5151, “req_n”: 2166118, “source_ip”: “10.5.244.32”, “response_size”: 1285, “timestamp”: “2017-07-19T18:54:39Z”, “http_method”: “GET”, “http_url”:”/api/v1/pp_preview/?models=reviews%2Cquestions&sku=XXXXXXXXXXX&limit=50&c ountry=by”, “response_time”: “0.02”, ... } [pid: 5151|app: 0|req: 2166118/25642392] 10.5.244.32 () {42 vars in 865 bytes} [Wed Jul 19 18:54:39 2017] GET /api/v1/pp_preview/?models=reviews%2Cquestions&sku=XXXXXXXXXXX&limit=50&country=by => generated 1285 bytes in 20 msecs (HTTP/1.0 200) 5 headers in 154 bytes (1 switches on core 0) VS $ open "goo.gl/RS43Rg" $ npm install -g bunyan $ brew install jq
  • 38.
  • 39. … structure with benefits ... ● Understanding/predicting necessary information ○ Do you need a particular field? ○ Is it useful now? ○ How about future? ○ What can you aggregate from a field? ● Think about aggregations ○ Average over time? You need a number. ○ Histogram on field? You need limited set of possible values. ○ Pie chart? Limited set of values. ○ … (yes, I don’t mention geo based aggregations, because you can google that one out)
  • 40.
  • 41. NEW RELIC … no, they don’t pay me … yet.
  • 42. Poor Man’s tracing map $http_x_trace_id $trace_id { '' $request_id; default $http_x_trace_id; } ... proxy_set_header X-Trace-Id $trace_id;
  • 43. Rich Man’s tracing ● There is a number of libraries (including newrelic) which provide the same functionality ● End result is similar: You see what parts are touched in a single operation … yes, I shamelessly trimmed the output.
  • 45. … trimmed to a fir client
  • 46. Why tracing? ● For Lamoda it was used to figure out which system in the chain forces the process to timeout. ○ Request returns 504 ○ Request touches 8 subsystems ○ Somewhere in the chain nginx is configured with proxy_read_timeout 500ms; ○ None of individual systems show response durations higher than 500ms ○ … but the sum of a chain below the capped nginx -- is higher than 500ms! ● Also it helps to find reasons for failing requests ○ Because sometimes you just don’t know the dependencies of two systems ○ When you have multiple services responsible for a request handling, you are deemed to have a bad time managing your dependencies
  • 47. EVENTS … you know, second coming...
  • 48. Event examples ● A user clicks on a button ● A hard disk driver emits a failure code ● Aggregation of response time is larger than X for last Y ● Scheduled alarm clock goes off … yes, every morning is an event in this sense...
  • 49. Event anti-examples ● User clicked 15 buttons on average ● Hard disk is spinning normally ● Response time aggregation is X ● This morning it took me 3 alarms to get out of bed
  • 53.
  • 55. Structured list of rants ● Concept of events ● Benefits of structure ● Poor man’s event tracing ● Debug logging in production
  • 56. Summarized list of rants ● A log message is an event ○ Events can be aggregated to extract metrics ○ Metrics can be analysed to figure out complex events ● Structured events are easier to aggregate ○ Less parsing == more throughput ● “X-Trace-ID: ***” … it is just a neat trick when you need to … ● … find a gold nugget in a pile of …
  • 57. Summarized list of rants ● A log message is an event ○ Events can be aggregated to extract metrics ○ Metrics can be analysed to figure out complex events ● Structured events are easier to aggregate ○ Less parsing == more throughput ● “X-Trace-ID: ***” … it is just a neat trick when you need to … ● … find a gold nugget in a pile of debug logs.
  • 58. … questions? … I retain the right to silently ignore difficult ones
  • 59. vytis.valentinavicius@lamoda.lt, also go look at http://tech.lamoda.ru/ … questions?
  • 60. … and as promised, CLS™ architecture! scalable highly available cloud ready much buzzword open source solutionCLS™ LOGS UNICORNS
  • 61. strong ES strong ES strong ES log source rsyslogd syslog-ng kafka kafka kafka kafka fluentd logstash logstash logstash strong ES weak ES weak ES weak ES weak ES cold ES cold ES cold ES cold ES Producers Entry buffer indexers readonly archives Mutators Filters Parsers ElasticSearch Store