SlideShare una empresa de Scribd logo
1 de 73
Descargar para leer sin conexión
Observability
Huynh	Quang	Thao	
Trusting	Social
Observability
What	is	the	logging	?
What	is	the	distributed	tracing	?
- tracing	involves	a	specialized	use	of	logging	to	record	information	
about	a	program's	execution.
What	is	the	metric	?
- tracing	involves	a	specialized	use	of	logging	to	record	information	
about	a	program's	execution.		
- Example	metrics:		
- Average	time	to	query	products	table.
Logging:	ELK	/	EFK
Tracing
Microservice	1 Exporter
BMicroservice	2 Exporter
Microservice	3 Exporter
Backend
Tracing
Microservice	1 Exporter
BMicroservice	2 Exporter
Microservice	3 Exporter
Backend
Tracing
Microservice	1 Exporter
BMicroservice	2 Exporter
Microservice	3 Exporter
Backend
Metric
Microservice	1 Exporter
BMicroservice	2 Exporter
Microservice	3 Exporter
Backend
Metric
Microservice	1 Exporter
BMicroservice	2 Exporter
Microservice	3 Exporter
Backend
/metrics	API	for	Prometheus
Language	&	Exporter	Matrix
Why	use	OpenCensus	/	OpenTracing
- Standardize	format	with	backends	(Jaeger,	Zipkin,	…)	
- Abstract	logic	code.
Why	use	OpenCensus	/	OpenTracing
- Standard	format	with	backend	(Jaeger,	Zipkin,	…)	
- Abstract	logic	code.
_, span := trace.StartSpan(r.Context(), "child")
defer span.End()
span.Annotate([]trace.Attribute{trace.StringAttribute("key", "value")}, “querying")
span.AddAttributes(trace.StringAttribute("hello", "world"))
je, err := jaeger.NewExporter(jaeger.Options{
AgentEndpoint: agentEndpoint,
CollectorEndpoint: collectorEndpoint,
ServiceName: service,
})
trace.RegisterExporter(je)
Opencensus	
Architecture
Export	directly	to	the	backend
Microservice	1 Exporter
BMicroservice	2 Exporter
Microservice	3 Exporter
Backend
Export	directly	to	the	backend
OpenCensus	local	z-pages
Export	directly	to	the	backend
- Coupling	between	each	microservice	with	the	backend.	
- If	we	want	to	change	the	backend,	we	must	update	code	on	every	service.	
- If	we	want	to	change	some	conWigurations,	we	must	update	code	on	service.	
- Scaling	exporter	languages	(i.e	Jaeger:	must	be	written	for	all	supported	
languages	Golang,	Java,	Python,	…)	
- Manage	ports	on	some	backends	such	as	Prometheus.
OpenCensus	Service
OpenCensus	Service
OpenCensus	Service
Jaeger	Architecture
OpenCensus	Service
- Decoupling	between	services	and	tracing/metric	backends.	
- OpenCensus	collector	supports	intelligent	sampling.	(tail-based	approach)	
- Preprocess	data	(annotate	span,	update	tags	…)	before	come	to	another	
backends.	
- Don’t	have	much	documentation	now.	But	we	can	get	reference	to	Jaeger	for	
similar	deployment.
Opencensus	
Concepts
Tracing
Trace
- A	trace	is	a	tree	of	spans.		
- Every	request	which	sends	from	the	client	will	generate	a	TraceID.	
- Showing	the	path	of	the	work	through	the	system.
Trace
- A	trace	is	a	tree	of	spans.		
- Every	request	which	sends	from	the	client	will	generate	a	TraceID.	
- Showing	the	path	of	the	work	through	the	system.
Span
- A	span	represents	a	single	operation	in	a	trace.		
- A	span	could	be	representative	of	an	HTTP	request,	a	RPC	call,	a	database	query.	
- User	deWines	code	path:	start	and	end.
Span
doSomeWork(); // sleep 3s
_, span := trace.StartSpan(r.Context(), "parent span")
defer span.End()
doSomeWork();
_, childrenSpan := trace.StartSpan(r.Context(), "children span")
defer childrenSpan.End()
doSomeWork();
Tag
- Tag	is	the	key-value	pair	of	data	which	associated	with	each	trace.	
- Helpful	for	the	reporting,	searching,	Wiltering	…
Tag
- Tag	is	the	key-value	pair	of	data	which	associated	with	each	trace.	
- Helpful	for	the	reporting,	searching,	Wiltering	…
Tag
_, childrenSpan := trace.StartSpan(r.Context(), "children span")
defer childrenSpan.End()
childrenSpan.AddAttributes(trace.StringAttribute("purpose", "test"))
Trace	Sampling
There	are	4	levels:	
- Always	
- Never	
- Probabilistic	
- Rate	limiting		
- Should	be	Probabilistic	/	Rate	limiting		
- Never	for	un-sampling	request.
Trace	Sampling
There	are	4	levels:	
- Always	
- Never	
- Probabilistic	
- Rate	limiting		
- Should	be	Probabilistic	/	Rate	limiting		
- Never	for	un-sampling	request.
trace.ApplyConfig(trace.Config{DefaultSampler: trace.AlwaysSample()})
trace.ApplyConfig(trace.Config{DefaultSampler: trace.ProbabilitySampler(0.7)})
Global	Con:iguration
Via	Span
_, span := trace.StartSpan(r.Context(), "child", func(options *trace.StartOptions) {
options.Sampler = trace.AlwaysSample()
})
OpenCensus	sample	rules
The	OpenCensus	use	the	head-based	sampling	with	following	rules:	
1. If	the	span	is	a	root	Span:	
• If	a	"span-scoped"	Sampler	is	provided,	use	it	to	determine	the	sampling	decision.	
• Else	use	the	global	default	Sampler	to	determine	the	sampling	decision.	
2.				If	the	span	is	a	child	of	a	remote	Span:	
• If	a	"span-scoped"	Sampler	is	provided,	use	it	to	determine	the	sampling	decision.	
• Else	use	the	global	default	Sampler	to	determine	the	sampling	decision.	
3.	If	the	span	is	a	child	of	a	local	Span:	
• If	a	"span-scoped"	Sampler	is	provided,	use	it	to	determine	the	sampling	decision.	
• Else	keep	the	sampling	decision	from	the	parent.
OpenCensus	sample	rules
The	OpenCensus	use	the	head-based	sampling	with	following	rules:	
1. If	the	span	is	a	root	Span:	
• If	a	"span-scoped"	Sampler	is	provided,	use	it	to	determine	the	sampling	decision.	
• Else	use	the	global	default	Sampler	to	determine	the	sampling	decision.	
2.				If	the	span	is	a	child	of	a	remote	Span:	
• If	a	"span-scoped"	Sampler	is	provided,	use	it	to	determine	the	sampling	decision.	
• Else	use	the	global	default	Sampler	to	determine	the	sampling	decision.	
3.	If	the	span	is	a	child	of	a	local	Span:	
• If	a	"span-scoped"	Sampler	is	provided,	use	it	to	determine	the	sampling	decision.	
• Else	keep	the	sampling	decision	from	the	parent.	
Disadvantages:	
- Might	lost	some	useful	data.	
- Can	be	Wixed	by	using	the	tail-based	approach	on	the	OpenCensus	collector.	
References:		
- https://github.com/census-instrumentation/opencensus-specs/blob/master/
trace/Sampling.md		
- https://sWlanders.net/2019/04/17/intelligent-sampling-with-opencensus/
Metrics
Measure
- A	measure	represents	a	metric	type	to	be	recorded.		
- For	example,	request	latency	is	in	µs	and	request	size	is	in	KBs.	
- A	measure	includes	3	Wields:	Name		-	Description	-	Unit	
- Measure	supports	2	type:	Wloat	and	int
GormQueryCount = stats.Int64( // Type: Integer
GormQueryCountName, // name
"Number of queries started", // description
stats.UnitDimensionless, // Unit
)
Measurement
- Measurement	is	a	data	point	produced	after	recording	a	quantity	by	a	measure.		
- A	measurement	is	just	a	raw	statistic.
measurement := GormQueryCount.M(1)
// M creates a new int64 measurement.
// Use Record to record measurements.
func (m *Int64Measure) M(v int64) Measurement {
return Measurement{
m: m,
desc: m.desc,
v: float64(v),
}
}
stats.Record(wrappedCtx, GormQueryCount.M(1))
View
- Views	are	the	coupling	of	an	Aggregation	applied	to	a	Measure	and	optionally	Tags.	
- Supported	aggregation	function:	Count	/	Distribution	/	Sum	/	LastValue.	
- Multiple	views	can	use	same	measure	but	only	when	different	aggregation.	
- 	The	various	tags	used	to	group	and	Wilter	collected	metrics	later	on.
GormQueryCountView = &view.View{
Name: GormQueryCountName,
Description: "Count of database queries based on Table and Operator",
TagKeys: []tag.Key{GormOperatorTag, GormTableTag},
Measure: GormQueryCount,
Aggregation: view.Count(),
}
Metric	Sampling
Stats	are	NOT	sampled	to	be	able	to	represent	uncommon	cases	hence,	stats	
are	ALWAYS	recorded	unless	dropped.
Context	Propagation
Context	Propagation:	B3	Standard
Header	Data:		
X-B3-Sampled:[1]		
X-B3-Spanid:[dacdb2208f874447]		
X-B3-Traceid:[9ca4a513af5f299a856dec51336a051b]
var requestOption = comm.RequestOption{
Transport: &ochttp.Transport{
Propagation: &b3.HTTPFormat{},
Base: &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
},
},
}
Context	Propagation:	OpenTracing	Standard
Header	Data:	
Traceparent:[00-a9f4dc05b7a78f6f2f717d7396d9450f-187065dac4cd685c-01]
var requestOption = comm.RequestOption{
Transport: &ochttp.Transport{
Propagation: &tracecontext.HTTPFormat{},
Base: &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
},
},
}
Implementation
1.	HTTP	Handler
mux := http.NewServeMux()
mux.HandleFunc("/first", firstAPI)
// wrap handler inside OpenCensus handler for tracing request
och := &ochttp.Handler{
Handler: mux,
}
// start
if err := http.ListenAndServe(address, och); err != nil {
panic(err)
}
1.	HTTP	Handler
// vite/tracing
// WrapHandlerWithTracing wraps handler inside OpenCensus handler for tracing
func WrapHandlerWithTracing(handler http.Handler,
option OptionTracing) (http.Handler, error) {
// processing option here
// ...
handler = &ochttp.Handler{
Propagation: propagationFormat,
IsPublicEndpoint: option.IsPublicEndpoint,
StartOptions: startOptions,
Handler: handler,
}
return handler, nil
}
Wrap	normal	http.Handler	with	ochttp.Handler
2.	HTTP	Transport	Layer
var DefaultTransport = &ochttp.Transport{
Propagation: &tracecontext.HTTPFormat{},
Base: &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
},
}
var DefaultTransport = http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}
Before
After
3.	Callback:	GORM
func RegisterGormCallbacksWithConfig(db *gorm.DB, cfg *GormTracingCfg) {
db.Callback().Create()
.Before(“gorm:create")
.Register("instrumentation:before_create", cfg.beforeCallback(CreateOperator))
db.Callback().Create().After(“gorm:create")
.Register("instrumentation:after_create", cfg.afterCallback())
//more callbacks here
}
func MigrateDB() {
testDB = createDBConnection()
RegisterGormCallbacks(testDB)
}
Register	all	necessary	callbacks	for	GORM
3.	Callback:	GORM
func GormWithContext(ctx context.Context, origGorm *gorm.DB) *gorm.DB {
return origGorm.Set(ScopeContextKey, ctx)
}
Wrap	Gorm	Object	with	context	before	calling	database	operator
orm := tracing.GormWithContext(r.Context(), testDB)
product, _ := GetFirstProductWithContext(orm)
func GetFirstProductWithContext(db *gorm.DB) (*Product, error) {
r := &Product{}
if err := db.First(r, 1).Error; err != nil {
if gorm.IsRecordNotFoundError(err) {
return nil, nil
}
log.Println(vite.MarkError, err)
return nil, err
}
return r, nil
}
4.	Callback:	Redis
// takes a vanilla redis.Client and returns trace instrumented version
func RedisWithContext(ctx context.Context, origClient *redis.Client) *redis.Client {
client := origClient.WithContext(ctx)
client.WrapProcess(perCommandTracer(ctx, &redisDefaultCfg))
return client
}
// perCommandTracer provides the instrumented function
func perCommandTracer(ctx context.Context, cfg *RedisTracingCfg,
) func(oldProcess func(cmd redis.Cmder) error) func(redis.Cmder) error {
return func(fn func(cmd redis.Cmder) error) func(redis.Cmder) error {
return func(cmd redis.Cmder) error {
span := cfg.startTrace(ctx, cmd)
defer cfg.endTrace(span, cmd)
err := fn(cmd)
return err
}
}
}
4.	Callback:	Redis
// wrap redis object before calling redis operator
wrapRedis := tracing.RedisWithContext(r.Context(), Redis.Client)
readKeyWithContext(wrapRedis, "service", "StackOverFlow")
func readKeyWithContext(client *redis.Client, key string) string {
return client.Get(key).String()
}
Client	side:	wrap	again		Redis	client	with	context	before	calling	Redis	operator.
5.	Exporter
func RunJaegerExporter(service string, agentEndpoint string,
collectorEndpoint string) (*jaeger.Exporter, error) {
je, err := jaeger.NewExporter(jaeger.Options{
AgentEndpoint: agentEndpoint,
CollectorEndpoint: collectorEndpoint,
ServiceName: service,
})
if err != nil {
return nil, err
}
trace.RegisterExporter(je)
trace.ApplyConfig(trace.Config{DefaultSampler: trace.ProbabilitySampler(0.2)})
return je, nil
}
_, err := tracing.RunJaegerExporter(
"trusting_social_demo",
"localhost:6831",
"http://localhost:14268/api/traces",
)
Export	to	Jaeger
5.	Exporter
Export	to	Console
_, err = tracing.RunConsoleExporter()
if err != nil {
panic(err)
}
// Start starts the metric and span data exporter.
func (exporter *LogExporter) Start() error {
exporter.traceExporter.Start()
exporter.viewExporter.Start()
err := exporter.metricExporter.Start()
if err != nil {
return err
}
return nil
}
5.	Exporter
Export	to	Prometheus
func RunPrometheusExporter(namespace string) (*prometheus.Exporter, error) {
pe, err := prometheus.NewExporter(prometheus.Options{
Namespace: namespace,
})
view.RegisterExporter(pe)
return pe, nil
}
// add api endpoint for prometheus
app.Mux.Handle("/metrics", pe)
scrape_configs:
- job_name: 'trustingsocial_ocmetrics'
scrape_interval: 5s
static_configs:
- targets: ['host.docker.internal:3000']
Create	entry	point	/metrics	for	prometheus	service	call
Sample	prometheus	conWiguration:
6.	Register	views
Register	all	database	views
err := tracing.RegisterAllDatabaseViews()
if err != nil {
panic(err)
}
defer tracing.UnregisterAllDatabaseViews()
// RegisterAllDatabaseViews registers all database views
func RegisterAllDatabaseViews() error {
return view.Register(GormQueryCountView)
}
Register	all	Redis	views
err = tracing.RegisterAllRedisViews()
if err != nil {
panic(err)
}
defer tracing.UnregisterAllRedisViews()
Write	custom	
exporter
Export	trace
func (exporter *TraceExporter) ExportSpan(sd *trace.SpanData) {
var (
traceID = hex.EncodeToString(sd.SpanContext.TraceID[:])
spanID = hex.EncodeToString(sd.SpanContext.SpanID[:])
parentSpanID = hex.EncodeToString(sd.ParentSpanID[:])
)
// RunJaegerExporter exports trace to Jaeger
}
func (exporter *TraceExporter) Start() {
trace.RegisterExporter(exporter)
}
1.	Implement	ExportSpan	function
2.	Call	trace.RegisterExporter
Export	view
// ExportView implements view.Exporter's interface
func (exporter *ViewExporter) ExportView(vd *view.Data) {
for _, row := range vd.Rows {
}
}
// Start starts printing log
func (exporter *ViewExporter) Start() {
view.RegisterExporter(exporter)
}
1.	Implement	ExportView	function
2.	Call	view.RegisterExporter
Export	metric
// ExportMetrics implements metricexport.Exporter's interface.
func (exporter *MetricExporter) ExportMetrics(ctx context.Context,
metrics []*metricdata.Metric) error {
for _, metric := range metrics {
// process each metric
}
return nil
}
// Start starts printing log
func (exporter *MetricExporter) Start() error {
exporter.initReaderOnce.Do(func() {
exporter.intervalReader, _ = metricexport.NewIntervalReader(
exporter.reader,
exporter,
)
})
exporter.intervalReader.ReportingInterval = exporter.reportingInterval
return exporter.intervalReader.Start()
}
1.	Implement	ExportMetrics	function
2.	Interval	polling	to	get	latest	metric	data
How	to	deWine	useful	
metrics
The	four	golden	signals
1. Latency	
2. TrafWic	
3. Errors	
4. Saturations
Latency
1.	Latency	
• The	time	it	takes	to	service	a	request.		
• important	to	distinguish	between	the	latency	of	successful	requests	and	the	latency	
of	failed	requests.	
• it’s	important	to	track	error	latency,	as	opposed	to	just	Wiltering	out	errors.	
Example:	
• Database:	time	to	query	to	database	server.	
• HTTP	request:	time	from	the	beginning	to	the	end	of	the	request.
TrafWic
1.	Traf:ic	
• A	measure	of	how	much	demand	is	being	placed	on	your	system,	measured	in	a	high-
level	system-speciWic	metric.	
Example:	
• HTTP	request:	HTTP	Requests	per	second	
• Database:	Successfully	/	Fail	queries	per	second.	
• Redis:	Successfully	/	Fail	queries	(without	not	found)	queries	per	second.
Error
1.	Error	
• The	rate	of	requests	that	fail,	either	explicitly,	implicitly	or	policy.	
• Explicit:	request	with	http	status	code	500.	
• Implicit:	an	HTTP	200	success	response,	but	coupled	with	the	wrong	content)	
• Policy:	If	you	committed	to	one-second	response	times,	any	request	over	one	second	
is	an	error	
 
Example:	
• HTTP	request:	request	with	status	code	not	200	
• Redis:	Queries	that	return	error	code	(without	not	found).	
• Database:	Queries	that	return	error	code	(without	not	found)
Saturation
1.	Error	
• How	"full"	your	service	is:	Explicit,	Implicit	or	Policy	
Explicit:	request	with	http	status	code	500.	
Implicit:	an	HTTP	200	success	response,	but	coupled	with	the	wrong	content)	
Policy:	If	you	committed	to	one-second	response	times,	any	request	over	one	second	is	
an	error	
• Latency	increases	are	often	a	leading	indicator	of	saturation.		
• Measuring	your	99th	percentile	response	time	over	some	small	window	can	give	a	very	
early	signal	of	saturation.	
 
Example:	
• HTTP	request:		System	loads	such	as	CPU,	RAM	…	
• Redis:	Idle	/	Active	/	Inactive	connections	in	connection	pool.	
• Database:	Idle	/	Active	/	Inactive	connections	in	connection	pool.
The	four	golden	signals
Already	implemented	in	tracing	repository,	in	4	packages:	redis	/	gorm	/	http	
Must	read	
- How	to	measure	on	production	environment	
- Systematically	way	to	resolving	production	issues	
…
Tracing	Repository
Repository: https://github.com/tsocial/tracing
• Implemented	callbacks	for	Redis,	Gorm	and	HTTP	Handler.	
• DeWined	and	implemented	observability	for	each	package.	
• Implemented	some	exporters	(e.g:	Jaeger,	Prometheus,	…).	
• Implemented	console	exporter	and	simple	exporter	for	testing.		
• Example	project	to	demonstrate	the	usage.	
• Decoupling	with	the	Telco	platform.	Open	Source	?
Sample	project
1. Repository: https://github.com/tsocial/distributed_tracing_demo
- Test	with	Gorm/Redis	
- Test	tracing	with	console	exporter	
- Test	with	Jaeger	/Prometheus		
- Call	external	service	
- Call	internal	service	
- TODO:	test	with	OpenCensus	service
2. Repository:
https://github.com/census-instrumentation/opencensus-service/blob/master/demos/trace/
docker-compose.yaml
- Test	with	OpenCensus	service	
- Multiple	internal	services	
- Jaeger	/	Prometheus	/	Zipkin	…
References
-	Documentation:	https://opencensus.io	
-	Examples:	https://github.com/census-instrumentation/opencensus-go/tree/master/examples	
-	How	not	to	measure	latency:	https://www.youtube.com/watch?v=lJ8ydIuPFeU	
-	SpeciWication	for	B3	format:	https://github.com/apache/incubator-zipkin-b3-propagation	
-	SpeciWication	for	OpenTracing	format:		
• https://www.w3.org/TR/trace-context/#dfn-distributed-traces		
• https://github.com/opentracing/speciWication/issues/86	
- Logging	architecture:	https://kubernetes.io/docs/concepts/cluster-administration/logging/	
- Nice	post	about	OpenCensus	vs	OpenTracing:	https://github.com/gomods/athens/issues/392	
- OpenCensus	service	Design:	https://github.com/census-instrumentation/opencensus-service/blob/master/DESIGN.md	
- Distributed	tracing	at	Uber:	https://eng.uber.com/distributed-tracing/		
- Tracing		HTTP	request	latency:	https://medium.com/opentracing/tracing-http-request-latency-in-go-with-
opentracing-7cc1282a100a		
- Context	propagation:	https://medium.com/jaegertracing/embracing-context-propagation-7100b9b6029a	
- Only	book	about	distributed	tracing:	https://www.amazon.com/Mastering-Distributed-Tracing-performance-microservices/
dp/1788628462	
-	https://landing.google.com/sre/sre-book/chapters/monitoring-distributed-systems/#xref_monitoring_golden-signals
Q&A

Más contenido relacionado

La actualidad más candente

Migrating Monitoring to Observability – How to Transform DevOps from being Re...
Migrating Monitoring to Observability – How to Transform DevOps from being Re...Migrating Monitoring to Observability – How to Transform DevOps from being Re...
Migrating Monitoring to Observability – How to Transform DevOps from being Re...Liz Masters Lovelace
 
Observability, Distributed Tracing, and Open Source: The Missing Primer
Observability, Distributed Tracing, and Open Source: The Missing PrimerObservability, Distributed Tracing, and Open Source: The Missing Primer
Observability, Distributed Tracing, and Open Source: The Missing PrimerVMware Tanzu
 
Monitoring & Observability
Monitoring & ObservabilityMonitoring & Observability
Monitoring & ObservabilityLumban Sopian
 
Observability, what, why and how
Observability, what, why and howObservability, what, why and how
Observability, what, why and howNeeraj Bagga
 
OSMC 2022 | OpenTelemetry 101 by Dotan Horovit s.pdf
OSMC 2022 | OpenTelemetry 101 by Dotan Horovit s.pdfOSMC 2022 | OpenTelemetry 101 by Dotan Horovit s.pdf
OSMC 2022 | OpenTelemetry 101 by Dotan Horovit s.pdfNETWAYS
 
Improve monitoring and observability for kubernetes with oss tools
Improve monitoring and observability for kubernetes with oss toolsImprove monitoring and observability for kubernetes with oss tools
Improve monitoring and observability for kubernetes with oss toolsNilesh Gule
 
MeetUp Monitoring with Prometheus and Grafana (September 2018)
MeetUp Monitoring with Prometheus and Grafana (September 2018)MeetUp Monitoring with Prometheus and Grafana (September 2018)
MeetUp Monitoring with Prometheus and Grafana (September 2018)Lucas Jellema
 
Cloud-Native Observability
Cloud-Native ObservabilityCloud-Native Observability
Cloud-Native ObservabilityTyler Treat
 
stackconf 2022: Open Source for Better Observability
stackconf 2022: Open Source for Better Observabilitystackconf 2022: Open Source for Better Observability
stackconf 2022: Open Source for Better ObservabilityNETWAYS
 
Intro to open source observability with grafana, prometheus, loki, and tempo(...
Intro to open source observability with grafana, prometheus, loki, and tempo(...Intro to open source observability with grafana, prometheus, loki, and tempo(...
Intro to open source observability with grafana, prometheus, loki, and tempo(...LibbySchulze
 
Kubernetes and service mesh application
Kubernetes  and service mesh applicationKubernetes  and service mesh application
Kubernetes and service mesh applicationThao Huynh Quang
 
Road to (Enterprise) Observability
Road to (Enterprise) ObservabilityRoad to (Enterprise) Observability
Road to (Enterprise) ObservabilityChristoph Engelbert
 
Observability at Scale
Observability at Scale Observability at Scale
Observability at Scale Knoldus Inc.
 
Observability For Modern Applications
Observability For Modern ApplicationsObservability For Modern Applications
Observability For Modern ApplicationsAmazon Web Services
 
Understand your system like never before with OpenTelemetry, Grafana, and Pro...
Understand your system like never before with OpenTelemetry, Grafana, and Pro...Understand your system like never before with OpenTelemetry, Grafana, and Pro...
Understand your system like never before with OpenTelemetry, Grafana, and Pro...LibbySchulze
 
Logging and observability
Logging and observabilityLogging and observability
Logging and observabilityAnton Drukh
 
Observability – the good, the bad, and the ugly
Observability – the good, the bad, and the uglyObservability – the good, the bad, and the ugly
Observability – the good, the bad, and the uglyTimetrix
 

La actualidad más candente (20)

Migrating Monitoring to Observability – How to Transform DevOps from being Re...
Migrating Monitoring to Observability – How to Transform DevOps from being Re...Migrating Monitoring to Observability – How to Transform DevOps from being Re...
Migrating Monitoring to Observability – How to Transform DevOps from being Re...
 
Observability, Distributed Tracing, and Open Source: The Missing Primer
Observability, Distributed Tracing, and Open Source: The Missing PrimerObservability, Distributed Tracing, and Open Source: The Missing Primer
Observability, Distributed Tracing, and Open Source: The Missing Primer
 
Monitoring & Observability
Monitoring & ObservabilityMonitoring & Observability
Monitoring & Observability
 
Observability, what, why and how
Observability, what, why and howObservability, what, why and how
Observability, what, why and how
 
OSMC 2022 | OpenTelemetry 101 by Dotan Horovit s.pdf
OSMC 2022 | OpenTelemetry 101 by Dotan Horovit s.pdfOSMC 2022 | OpenTelemetry 101 by Dotan Horovit s.pdf
OSMC 2022 | OpenTelemetry 101 by Dotan Horovit s.pdf
 
Observability
ObservabilityObservability
Observability
 
Improve monitoring and observability for kubernetes with oss tools
Improve monitoring and observability for kubernetes with oss toolsImprove monitoring and observability for kubernetes with oss tools
Improve monitoring and observability for kubernetes with oss tools
 
MeetUp Monitoring with Prometheus and Grafana (September 2018)
MeetUp Monitoring with Prometheus and Grafana (September 2018)MeetUp Monitoring with Prometheus and Grafana (September 2018)
MeetUp Monitoring with Prometheus and Grafana (September 2018)
 
Cloud-Native Observability
Cloud-Native ObservabilityCloud-Native Observability
Cloud-Native Observability
 
stackconf 2022: Open Source for Better Observability
stackconf 2022: Open Source for Better Observabilitystackconf 2022: Open Source for Better Observability
stackconf 2022: Open Source for Better Observability
 
Intro to open source observability with grafana, prometheus, loki, and tempo(...
Intro to open source observability with grafana, prometheus, loki, and tempo(...Intro to open source observability with grafana, prometheus, loki, and tempo(...
Intro to open source observability with grafana, prometheus, loki, and tempo(...
 
Kubernetes and service mesh application
Kubernetes  and service mesh applicationKubernetes  and service mesh application
Kubernetes and service mesh application
 
Road to (Enterprise) Observability
Road to (Enterprise) ObservabilityRoad to (Enterprise) Observability
Road to (Enterprise) Observability
 
Observability at Scale
Observability at Scale Observability at Scale
Observability at Scale
 
Observability For Modern Applications
Observability For Modern ApplicationsObservability For Modern Applications
Observability For Modern Applications
 
Observability-101
Observability-101Observability-101
Observability-101
 
Understand your system like never before with OpenTelemetry, Grafana, and Pro...
Understand your system like never before with OpenTelemetry, Grafana, and Pro...Understand your system like never before with OpenTelemetry, Grafana, and Pro...
Understand your system like never before with OpenTelemetry, Grafana, and Pro...
 
Observability & Datadog
Observability & DatadogObservability & Datadog
Observability & Datadog
 
Logging and observability
Logging and observabilityLogging and observability
Logging and observability
 
Observability – the good, the bad, and the ugly
Observability – the good, the bad, and the uglyObservability – the good, the bad, and the ugly
Observability – the good, the bad, and the ugly
 

Similar a Observability and its application

Webinar Monitoring in era of cloud computing
Webinar Monitoring in era of cloud computingWebinar Monitoring in era of cloud computing
Webinar Monitoring in era of cloud computingCREATE-NET
 
Second review presentation
Second review presentationSecond review presentation
Second review presentationArvind Krishnaa
 
Sumo Logic Cert Jam - Metrics Mastery
Sumo Logic Cert Jam - Metrics MasterySumo Logic Cert Jam - Metrics Mastery
Sumo Logic Cert Jam - Metrics MasterySumo Logic
 
Measurement .Net Performance with BenchmarkDotNet
Measurement .Net Performance with BenchmarkDotNetMeasurement .Net Performance with BenchmarkDotNet
Measurement .Net Performance with BenchmarkDotNetVasyl Senko
 
Summarizing Software API Usage Examples Using Clustering Techniques
Summarizing Software API Usage Examples Using Clustering TechniquesSummarizing Software API Usage Examples Using Clustering Techniques
Summarizing Software API Usage Examples Using Clustering TechniquesNikos Katirtzis
 
Kubernetes #2 monitoring
Kubernetes #2   monitoring Kubernetes #2   monitoring
Kubernetes #2 monitoring Terry Cho
 
Istio's mixer policy enforcement with custom adapters (cloud nativecon 17)
Istio's mixer  policy enforcement with custom adapters (cloud nativecon 17)Istio's mixer  policy enforcement with custom adapters (cloud nativecon 17)
Istio's mixer policy enforcement with custom adapters (cloud nativecon 17)Torin Sandall
 
Introduction to Reactive Extensions (Rx)
Introduction to Reactive Extensions (Rx)Introduction to Reactive Extensions (Rx)
Introduction to Reactive Extensions (Rx)Tamir Dresher
 
Algorithmic Trading Deutsche Borse Public Dataset
Algorithmic Trading Deutsche Borse Public DatasetAlgorithmic Trading Deutsche Borse Public Dataset
Algorithmic Trading Deutsche Borse Public DatasetMarjan Ahmed
 
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInDataMonitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInDataGetInData
 
FOSDEM 2019: M3, Prometheus and Graphite with metrics and monitoring in an in...
FOSDEM 2019: M3, Prometheus and Graphite with metrics and monitoring in an in...FOSDEM 2019: M3, Prometheus and Graphite with metrics and monitoring in an in...
FOSDEM 2019: M3, Prometheus and Graphite with metrics and monitoring in an in...Rob Skillington
 
How to reduce expenses on monitoring
How to reduce expenses on monitoringHow to reduce expenses on monitoring
How to reduce expenses on monitoringRomanKhavronenko
 
"Используем MetricKit в бою" / Марина Звягина (Vivid Money)
"Используем MetricKit в бою" / Марина Звягина (Vivid Money)"Используем MetricKit в бою" / Марина Звягина (Vivid Money)
"Используем MetricKit в бою" / Марина Звягина (Vivid Money)Egor Petrov
 
Introduction to trace viewer
Introduction to trace viewerIntroduction to trace viewer
Introduction to trace viewerLaura Villarreal
 
OSMC 2019 | Monitoring Cockpit for Kubernetes Clusters by Ulrike Klusik
OSMC 2019 | Monitoring Cockpit for Kubernetes Clusters by Ulrike KlusikOSMC 2019 | Monitoring Cockpit for Kubernetes Clusters by Ulrike Klusik
OSMC 2019 | Monitoring Cockpit for Kubernetes Clusters by Ulrike KlusikNETWAYS
 
Sumo Logic Quickstart - Jan 2017
Sumo Logic Quickstart - Jan 2017Sumo Logic Quickstart - Jan 2017
Sumo Logic Quickstart - Jan 2017Sumo Logic
 
Summary Create an Object-Oriented program that creates a simulator an.pdf
 Summary Create an Object-Oriented program that creates a simulator an.pdf Summary Create an Object-Oriented program that creates a simulator an.pdf
Summary Create an Object-Oriented program that creates a simulator an.pdfallwinsupport
 
How to Monitor Application Performance in a Container-Based World
How to Monitor Application Performance in a Container-Based WorldHow to Monitor Application Performance in a Container-Based World
How to Monitor Application Performance in a Container-Based WorldKen Owens
 
Sumo Logic QuickStat - Apr 2017
Sumo Logic QuickStat - Apr 2017Sumo Logic QuickStat - Apr 2017
Sumo Logic QuickStat - Apr 2017Sumo Logic
 

Similar a Observability and its application (20)

Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with Prometheus
 
Webinar Monitoring in era of cloud computing
Webinar Monitoring in era of cloud computingWebinar Monitoring in era of cloud computing
Webinar Monitoring in era of cloud computing
 
Second review presentation
Second review presentationSecond review presentation
Second review presentation
 
Sumo Logic Cert Jam - Metrics Mastery
Sumo Logic Cert Jam - Metrics MasterySumo Logic Cert Jam - Metrics Mastery
Sumo Logic Cert Jam - Metrics Mastery
 
Measurement .Net Performance with BenchmarkDotNet
Measurement .Net Performance with BenchmarkDotNetMeasurement .Net Performance with BenchmarkDotNet
Measurement .Net Performance with BenchmarkDotNet
 
Summarizing Software API Usage Examples Using Clustering Techniques
Summarizing Software API Usage Examples Using Clustering TechniquesSummarizing Software API Usage Examples Using Clustering Techniques
Summarizing Software API Usage Examples Using Clustering Techniques
 
Kubernetes #2 monitoring
Kubernetes #2   monitoring Kubernetes #2   monitoring
Kubernetes #2 monitoring
 
Istio's mixer policy enforcement with custom adapters (cloud nativecon 17)
Istio's mixer  policy enforcement with custom adapters (cloud nativecon 17)Istio's mixer  policy enforcement with custom adapters (cloud nativecon 17)
Istio's mixer policy enforcement with custom adapters (cloud nativecon 17)
 
Introduction to Reactive Extensions (Rx)
Introduction to Reactive Extensions (Rx)Introduction to Reactive Extensions (Rx)
Introduction to Reactive Extensions (Rx)
 
Algorithmic Trading Deutsche Borse Public Dataset
Algorithmic Trading Deutsche Borse Public DatasetAlgorithmic Trading Deutsche Borse Public Dataset
Algorithmic Trading Deutsche Borse Public Dataset
 
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInDataMonitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
 
FOSDEM 2019: M3, Prometheus and Graphite with metrics and monitoring in an in...
FOSDEM 2019: M3, Prometheus and Graphite with metrics and monitoring in an in...FOSDEM 2019: M3, Prometheus and Graphite with metrics and monitoring in an in...
FOSDEM 2019: M3, Prometheus and Graphite with metrics and monitoring in an in...
 
How to reduce expenses on monitoring
How to reduce expenses on monitoringHow to reduce expenses on monitoring
How to reduce expenses on monitoring
 
"Используем MetricKit в бою" / Марина Звягина (Vivid Money)
"Используем MetricKit в бою" / Марина Звягина (Vivid Money)"Используем MetricKit в бою" / Марина Звягина (Vivid Money)
"Используем MetricKit в бою" / Марина Звягина (Vivid Money)
 
Introduction to trace viewer
Introduction to trace viewerIntroduction to trace viewer
Introduction to trace viewer
 
OSMC 2019 | Monitoring Cockpit for Kubernetes Clusters by Ulrike Klusik
OSMC 2019 | Monitoring Cockpit for Kubernetes Clusters by Ulrike KlusikOSMC 2019 | Monitoring Cockpit for Kubernetes Clusters by Ulrike Klusik
OSMC 2019 | Monitoring Cockpit for Kubernetes Clusters by Ulrike Klusik
 
Sumo Logic Quickstart - Jan 2017
Sumo Logic Quickstart - Jan 2017Sumo Logic Quickstart - Jan 2017
Sumo Logic Quickstart - Jan 2017
 
Summary Create an Object-Oriented program that creates a simulator an.pdf
 Summary Create an Object-Oriented program that creates a simulator an.pdf Summary Create an Object-Oriented program that creates a simulator an.pdf
Summary Create an Object-Oriented program that creates a simulator an.pdf
 
How to Monitor Application Performance in a Container-Based World
How to Monitor Application Performance in a Container-Based WorldHow to Monitor Application Performance in a Container-Based World
How to Monitor Application Performance in a Container-Based World
 
Sumo Logic QuickStat - Apr 2017
Sumo Logic QuickStat - Apr 2017Sumo Logic QuickStat - Apr 2017
Sumo Logic QuickStat - Apr 2017
 

Más de Thao Huynh Quang

2021-03-08-telegram-vs-signal.pdf
2021-03-08-telegram-vs-signal.pdf2021-03-08-telegram-vs-signal.pdf
2021-03-08-telegram-vs-signal.pdfThao Huynh Quang
 
Consensus and Raft Algorithm in Distributed System
Consensus and  Raft Algorithm in Distributed SystemConsensus and  Raft Algorithm in Distributed System
Consensus and Raft Algorithm in Distributed SystemThao Huynh Quang
 
Consensus and Raft algorithm (Vietnamese version)
Consensus and Raft algorithm (Vietnamese version)Consensus and Raft algorithm (Vietnamese version)
Consensus and Raft algorithm (Vietnamese version)Thao Huynh Quang
 
Kotlin Introduction with Android applications
Kotlin Introduction with Android applicationsKotlin Introduction with Android applications
Kotlin Introduction with Android applicationsThao Huynh Quang
 
Git Introduction with illustrations
Git Introduction with illustrationsGit Introduction with illustrations
Git Introduction with illustrationsThao Huynh Quang
 
Android Jetpack: Room persistence library
Android Jetpack: Room persistence libraryAndroid Jetpack: Room persistence library
Android Jetpack: Room persistence libraryThao Huynh Quang
 
Kafka: All an engineer needs to know
Kafka: All an engineer needs to knowKafka: All an engineer needs to know
Kafka: All an engineer needs to knowThao Huynh Quang
 
Concurrency pattern in Kotlin
Concurrency pattern in KotlinConcurrency pattern in Kotlin
Concurrency pattern in KotlinThao Huynh Quang
 
Android Reverse Engineering
Android Reverse EngineeringAndroid Reverse Engineering
Android Reverse EngineeringThao Huynh Quang
 

Más de Thao Huynh Quang (15)

2021-03-08-telegram-vs-signal.pdf
2021-03-08-telegram-vs-signal.pdf2021-03-08-telegram-vs-signal.pdf
2021-03-08-telegram-vs-signal.pdf
 
Consensus and Raft Algorithm in Distributed System
Consensus and  Raft Algorithm in Distributed SystemConsensus and  Raft Algorithm in Distributed System
Consensus and Raft Algorithm in Distributed System
 
Consensus and Raft algorithm (Vietnamese version)
Consensus and Raft algorithm (Vietnamese version)Consensus and Raft algorithm (Vietnamese version)
Consensus and Raft algorithm (Vietnamese version)
 
Kotlin Introduction with Android applications
Kotlin Introduction with Android applicationsKotlin Introduction with Android applications
Kotlin Introduction with Android applications
 
Git Introduction with illustrations
Git Introduction with illustrationsGit Introduction with illustrations
Git Introduction with illustrations
 
Android Jetpack: Room persistence library
Android Jetpack: Room persistence libraryAndroid Jetpack: Room persistence library
Android Jetpack: Room persistence library
 
Android Performance Tips
Android Performance TipsAndroid Performance Tips
Android Performance Tips
 
Kafka: All an engineer needs to know
Kafka: All an engineer needs to knowKafka: All an engineer needs to know
Kafka: All an engineer needs to know
 
Blockchain introduction
Blockchain introductionBlockchain introduction
Blockchain introduction
 
Concurrency pattern in Kotlin
Concurrency pattern in KotlinConcurrency pattern in Kotlin
Concurrency pattern in Kotlin
 
GraphQL in Android
GraphQL in AndroidGraphQL in Android
GraphQL in Android
 
Android GRPC
Android GRPCAndroid GRPC
Android GRPC
 
Android Reverse Engineering
Android Reverse EngineeringAndroid Reverse Engineering
Android Reverse Engineering
 
nosql
nosqlnosql
nosql
 
android deep linking
android deep linkingandroid deep linking
android deep linking
 

Último

CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 

Último (20)

CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 

Observability and its application