Logging & monitoring

54
Logging & Monitoring Knowing your shit by Tobias Nyholm

Transcript of Logging & monitoring

Page 1: Logging & monitoring

Logging & MonitoringKnowing your shit

by Tobias Nyholm

Page 2: Logging & monitoring

Logging

Logging?

Page 3: Logging & monitoring

Logging

Composer?

Page 4: Logging & monitoring
Page 5: Logging & monitoring

LoggingJordi Boggiano @seldaek

Page 6: Logging & monitoring

Talk overview

Page 7: Logging & monitoring

About me• Tobias Nyholm, @tobiasnyholm

• Happyr.com

• Co-host of Sound of Symfony podcast

• Organizer of PHP Stockholm

Page 8: Logging & monitoring

What do you do today?

Page 9: Logging & monitoring

Google analyticsUser statistics What pages visited Time spent on the site How the users moves Where they come from etc…

Page 10: Logging & monitoring

Comment was created Call to API Media uploaded Data fetched User was imported

We want to log more

Page 11: Logging & monitoring

Example logging

Page 12: Logging & monitoring

Use monolog

Page 13: Logging & monitoring

Use monologLog with different levels Use streams No issue with locking Extendable!

Page 14: Logging & monitoring

Building blocks• Handlers - Do stuff with an entry

• Formatters - Defines how an entry should look

• Processors - Add extra data to the entry

Page 15: Logging & monitoring

Building blocks

Logger (channel)

HandlerHandler

Handler

Processor

ProcessorProcessorFormatter

Formatter

Formatter

HandlerFormatter

ProcessorProcessor

Page 16: Logging & monitoring

Monolog handlers

Page 17: Logging & monitoring

Monolog handlers

Page 18: Logging & monitoring

Custom handler

Page 19: Logging & monitoring

Formatters

Page 20: Logging & monitoring

Processors

Page 21: Logging & monitoring

Processors• IntrospectionProcessor: Adds the line/file/class/method from which

the log call originated.

• WebProcessor: Adds the current request URI, request method and client IP to a log record.

• MemoryUsageProcessor: Adds the current memory usage to a log record.

• MemoryPeakUsageProcessor: Adds the peak memory usage to a log record.

• GitProcessor: Adds the current git branch and commit to a log record.

• TagProcessor: Adds an array of predefined tags to a log record.

Page 22: Logging & monitoring
Page 23: Logging & monitoring

Log exceptions

Page 24: Logging & monitoring

Log exceptions

Page 25: Logging & monitoring

Log exceptions

Page 26: Logging & monitoring

Symfony Kernel

Page 27: Logging & monitoring

Symfony’s HttpKernel

Page 28: Logging & monitoring

RecapApplication events Monolog Handlers Exceptions

Everything put into one file

Page 29: Logging & monitoring

We got tons of entries

Page 30: Logging & monitoring

Log files/var/www/my_site/log.txt /var/log/php5-fpm.log /var/log/php5-fpm/access.log /var/log/php5-fpm/errors.log /var/log/php5-fpm/slow.log /var/log/apache2/access.log /var/log/apache2/error.log /var/log/syslog

Page 31: Logging & monitoring

I introduce to you: A logging server!

Page 32: Logging & monitoring

Logging serverGraylog 2

Elastic stack (former Elk)

Page 33: Logging & monitoring

Demo images on graylog

Page 34: Logging & monitoring
Page 35: Logging & monitoring
Page 36: Logging & monitoring

–Johnny Appleseed

“Type a quote here.”

Page 37: Logging & monitoring

Processors

Page 38: Logging & monitoring

Processors

Page 39: Logging & monitoring

Processors

Page 40: Logging & monitoring

Add extra data

Page 41: Logging & monitoring
Page 42: Logging & monitoring
Page 43: Logging & monitoring

I introduce to you: New Relic

Page 44: Logging & monitoring
Page 45: Logging & monitoring
Page 46: Logging & monitoring
Page 47: Logging & monitoring

–Johnny Appleseed

“Type a quote here.”

Page 48: Logging & monitoring

–Johnny Appleseed

“Type a quote here.”

Page 49: Logging & monitoring
Page 50: Logging & monitoring
Page 51: Logging & monitoring
Page 52: Logging & monitoring

–Johnny Appleseed

“Type a quote here.”

Page 53: Logging & monitoring

Thank you@tobiasnyholm

Page 54: Logging & monitoring

SeminarsNewRelic workshop - May 3rd http://newrelic.com/rsvp/20160503stockholmapmwkshp

Meetup with PHP security - May 11th http://www.meetup.com/php-stockholm/events/228580453/