SlideShare a Scribd company logo
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

More Related Content

What's hot

THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.ioTHE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
DevOpsDays Tel Aviv
 
Cloud-Native Observability
Cloud-Native ObservabilityCloud-Native Observability
Cloud-Native Observability
Tyler Treat
 
Logging and observability
Logging and observabilityLogging and observability
Logging and observability
Anton Drukh
 
Observability at Scale
Observability at Scale Observability at Scale
Observability at Scale
Knoldus Inc.
 
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Tonny Adhi Sabastian
 
Observability vs APM vs Monitoring Comparison
Observability vs APM vs  Monitoring ComparisonObservability vs APM vs  Monitoring Comparison
Observability vs APM vs Monitoring Comparison
jeetendra mandal
 
OpenTelemetry For Developers
OpenTelemetry For DevelopersOpenTelemetry For Developers
OpenTelemetry For Developers
Kevin Brockhoff
 
More Than Monitoring: How Observability Takes You From Firefighting to Fire P...
More Than Monitoring: How Observability Takes You From Firefighting to Fire P...More Than Monitoring: How Observability Takes You From Firefighting to Fire P...
More Than Monitoring: How Observability Takes You From Firefighting to Fire P...
DevOps.com
 
Observability & Datadog
Observability & DatadogObservability & Datadog
Observability & Datadog
JamesAnderson599331
 
The Observability Pipeline
The Observability PipelineThe Observability Pipeline
The Observability Pipeline
Tyler Treat
 
OpenTelemetry For Operators
OpenTelemetry For OperatorsOpenTelemetry For Operators
OpenTelemetry For Operators
Kevin Brockhoff
 
OpenTelemetry: From front- to backend (2022)
OpenTelemetry: From front- to backend (2022)OpenTelemetry: From front- to backend (2022)
OpenTelemetry: From front- to backend (2022)
Sebastian Poxhofer
 
Demystifying observability
Demystifying observability Demystifying observability
Demystifying observability
Abigail Bangser
 
Shift left Observability
Shift left ObservabilityShift left Observability
Shift left Observability
Eric D. Schabell
 
Monitoring & Observability
Monitoring & ObservabilityMonitoring & Observability
Monitoring & Observability
Lumban Sopian
 
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
 
Exploring the power of OpenTelemetry on Kubernetes
Exploring the power of OpenTelemetry on KubernetesExploring the power of OpenTelemetry on Kubernetes
Exploring the power of OpenTelemetry on Kubernetes
Red Hat Developers
 
Kubernetes and service mesh application
Kubernetes  and service mesh applicationKubernetes  and service mesh application
Kubernetes and service mesh application
Thao Huynh Quang
 
Api observability
Api observability Api observability
Api observability
Red Hat
 
Everything You wanted to Know About Distributed Tracing
Everything You wanted to Know About Distributed TracingEverything You wanted to Know About Distributed Tracing
Everything You wanted to Know About Distributed Tracing
Amuhinda Hungai
 

What's hot (20)

THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.ioTHE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
 
Cloud-Native Observability
Cloud-Native ObservabilityCloud-Native Observability
Cloud-Native Observability
 
Logging and observability
Logging and observabilityLogging and observability
Logging and observability
 
Observability at Scale
Observability at Scale Observability at Scale
Observability at Scale
 
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
 
Observability vs APM vs Monitoring Comparison
Observability vs APM vs  Monitoring ComparisonObservability vs APM vs  Monitoring Comparison
Observability vs APM vs Monitoring Comparison
 
OpenTelemetry For Developers
OpenTelemetry For DevelopersOpenTelemetry For Developers
OpenTelemetry For Developers
 
More Than Monitoring: How Observability Takes You From Firefighting to Fire P...
More Than Monitoring: How Observability Takes You From Firefighting to Fire P...More Than Monitoring: How Observability Takes You From Firefighting to Fire P...
More Than Monitoring: How Observability Takes You From Firefighting to Fire P...
 
Observability & Datadog
Observability & DatadogObservability & Datadog
Observability & Datadog
 
The Observability Pipeline
The Observability PipelineThe Observability Pipeline
The Observability Pipeline
 
OpenTelemetry For Operators
OpenTelemetry For OperatorsOpenTelemetry For Operators
OpenTelemetry For Operators
 
OpenTelemetry: From front- to backend (2022)
OpenTelemetry: From front- to backend (2022)OpenTelemetry: From front- to backend (2022)
OpenTelemetry: From front- to backend (2022)
 
Demystifying observability
Demystifying observability Demystifying observability
Demystifying observability
 
Shift left Observability
Shift left ObservabilityShift left Observability
Shift left Observability
 
Monitoring & Observability
Monitoring & ObservabilityMonitoring & Observability
Monitoring & Observability
 
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...
 
Exploring the power of OpenTelemetry on Kubernetes
Exploring the power of OpenTelemetry on KubernetesExploring the power of OpenTelemetry on Kubernetes
Exploring the power of OpenTelemetry on Kubernetes
 
Kubernetes and service mesh application
Kubernetes  and service mesh applicationKubernetes  and service mesh application
Kubernetes and service mesh application
 
Api observability
Api observability Api observability
Api observability
 
Everything You wanted to Know About Distributed Tracing
Everything You wanted to Know About Distributed TracingEverything You wanted to Know About Distributed Tracing
Everything You wanted to Know About Distributed Tracing
 

Similar to Observability and its application

Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with Prometheus
Richard Langlois P. Eng.
 
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
CREATE-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 Mastery
Sumo Logic
 
Measurement .Net Performance with BenchmarkDotNet
Measurement .Net Performance with BenchmarkDotNetMeasurement .Net Performance with BenchmarkDotNet
Measurement .Net Performance with BenchmarkDotNet
Vasyl 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 Techniques
Nikos 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 Dataset
Marjan 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, GetInData
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...
Rob Skillington
 
How to reduce expenses on monitoring
How to reduce expenses on monitoringHow to reduce expenses on monitoring
How to reduce expenses on monitoring
RomanKhavronenko
 
"Используем 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 viewer
Laura 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 Klusik
NETWAYS
 
Sumo Logic Quickstart - Jan 2017
Sumo Logic Quickstart - Jan 2017Sumo Logic Quickstart - Jan 2017
Sumo Logic Quickstart - Jan 2017
Sumo 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.pdf
allwinsupport
 
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
Ken Owens
 
Sumo Logic QuickStat - Apr 2017
Sumo Logic QuickStat - Apr 2017Sumo Logic QuickStat - Apr 2017
Sumo Logic QuickStat - Apr 2017
Sumo Logic
 

Similar to 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
 

More from 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.pdf
Thao 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 System
Thao 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 applications
Thao Huynh Quang
 
Git Introduction with illustrations
Git Introduction with illustrationsGit Introduction with illustrations
Git Introduction with illustrations
Thao Huynh Quang
 
Android Jetpack: Room persistence library
Android Jetpack: Room persistence libraryAndroid Jetpack: Room persistence library
Android Jetpack: Room persistence library
Thao Huynh Quang
 
Android Performance Tips
Android Performance TipsAndroid Performance Tips
Android Performance Tips
Thao 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 know
Thao Huynh Quang
 
Blockchain introduction
Blockchain introductionBlockchain introduction
Blockchain introduction
Thao Huynh Quang
 
Concurrency pattern in Kotlin
Concurrency pattern in KotlinConcurrency pattern in Kotlin
Concurrency pattern in Kotlin
Thao Huynh Quang
 
GraphQL in Android
GraphQL in AndroidGraphQL in Android
GraphQL in Android
Thao Huynh Quang
 
Android GRPC
Android GRPCAndroid GRPC
Android GRPC
Thao Huynh Quang
 
Android Reverse Engineering
Android Reverse EngineeringAndroid Reverse Engineering
Android Reverse Engineering
Thao Huynh Quang
 

More from 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
 

Recently uploaded

Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Hivelance Technology
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
varshanayak241
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 

Recently uploaded (20)

Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 

Observability and its application