How we integrated the LTTng pipeline to monitor .NET Core ... · Lessons we learned • Linux rocks...

Post on 01-Aug-2020

2 views 0 download

transcript

Kevin Gosse @kookiz

Grégory Léocadie

Christophe Nasarre

How we integrated the LTTng pipeline to monitor .NET Core applications on Linux

PLACEHOLDER IMAGE

2 | Copyright © 2017 Criteo

• 8747 servers running Windows

• 4000+ front-end servers

• 205 billions HTTP request per day

Criteo in numbersCriteo in numbers

3 | Copyright © 2017 Criteo

4 | Copyright © 2017 Criteo

Plumbing timePlumbing time

5 | Copyright © 2017 Criteo

Windows Pipeline to GrafanaWindows Pipeline to Grafana

Appgrafana

CompanionService

ETWevents

CLRevents

Windows

ETWCLR

Trace Event

6 | Copyright © 2017 Criteo

Windows Pipeline to GrafanaWindows Pipeline to Grafana

Appgrafana

CompanionService

ETWevents

Windows

ETWCLR CLRevents

Trace Event

7 | Copyright © 2017 Criteo

CentOS Pipeline to Grafana - 1/3CentOS Pipeline to Grafana - 1/3

AppgrafanaCTF

events

CentOS

LTTngCLR ?...?...Companionlistener

8 | Copyright © 2017 Criteo

CLRAppUST

Consumerd

Relayd

Companion listener

How to integrate the LTTng pipeline in CriteoHow to integrate the LTTng pipeline in Criteo

CentOS

Companion

listener

Companion

listener

Windows

DebuggingProfiling

9 | Copyright © 2017 Criteo

CentOS Pipeline to Grafana - 2/3CentOS Pipeline to Grafana - 2/3

AppgrafanaCTF

events

CentOS

LTTngCLR Companionlistener

Trace EventTrace Event

Parse CLR

events

10 | Copyright © 2017 Criteo

• Use TraceEvent library but… only file-based ctor

• Implement LTTng live session support: https://github.com/Microsoft/perfview/pull/340

Decyphering CLR event produced as CTF tracesDecyphering CLR event produced as CTF traces

11 | Copyright © 2017 Criteo

CentOS Pipeline to Grafana - 3/3CentOS Pipeline to Grafana - 3/3

AppgrafanaCTF

events

CentOS

LTTngCLR Companionlistener

Trace EventTrace Event

Parse CLR

events

12 | Copyright © 2017 Criteo

Lessons we learned

• Linux rocks for Windows developers … with .NET Core!

• LTTng documentation… not very Windows developer friendly

• Ongoing effort on Microsoft TraceEvent Open Source Library