SlideShare une entreprise Scribd logo
1  sur  60
Télécharger pour lire hors ligne
@snehainguva
observability and product release:
leveraging prometheus
to build and test new products
digitalocean.com
digitalocean.com
about me
software engineer @DigitalOcean
currently network services
<3 cats
digitalocean.com
some stats
digitalocean.com
90M+ timeseries
85 instances of prometheus
1.7M+ samples/sec
digitalocean.com
the history
digitalocean.com
ye’ olden days
use nagios + various plugins to monitor
use collectd + statsd + graphite
openTSDB
digitalocean.com
lovely prometheus
white-box monitoring
multi-dimensional data model
fantastic querying language
digitalocean.com
glorious kubernetes
easily deploy and update services
scalability
combine with prometheus + alertmanager
digitalocean.com
sneha joins networking
set up monitoring for VPC
working on DHCP
how can we use prometheus even before release?
digitalocean.com
the plan:
✔ observability DigitalOcean
build --- instrument --- test --- iterate
examples
digitalocean.com
metrics: time-series of sampled data
tracing: propagating metadata through
different requests, threads, and processes
logging: record of discrete events over time
digitalocean.com
metrics:
what do we measure?
digitalocean.com
four golden signals
digitalocean.com
latency: time to service a request
traffic: requests/second
error: error rate of requests
saturation: fullness of a service
digitalocean.com
Utilization
Saturation
Error rate
digitalocean.com
“USE metrics often allow users to
solve 80% of server issues with 5%
of the effort.”
digitalocean.com
the plan:
✔ observability DigitalOcean
✔ build --- instrument --- test --- iterate
examples
digitalocean.com
build:
design the service
write it in go
use internally shared libraries
digitalocean.com
build: doge/dorpc - shared rpc library
var DefaultInterceptors = []string{ StdLoggingInterceptor, StdMetricsInterceptor, StdTracingInterceptor}
func NewServer(opt ...ServerOpt) (*Server, error) {
opts := serverOpts{
name: "server",
clientTLSAuth: tls.VerifyClientCertIfGiven,
intercept: interceptor.NewPathInterceptor(interceptor.DefaultInterceptors...),
keepAliveParams: DefaultServerKeepAlive,
keepAliveEnforce: DefaultServerKeepAliveEnforcement,
}
…
}
digitalocean.com
instrument:
send logs to centralized logging
send spans to trace-collectors
set up prometheus metrics
digitalocean.com
metrics instrumentation: go-client
func (s *server) initalizeMetrics() {
s.metrics = metricsConfig{
attemptedConvergeChassis: s.metricsNode.Gauge("attempted_converge_chassis", "number of chassis
converger attempting to converge"),
failedConvergeChassis: s.metricsNode.Gauge("failed_converge_chassis", "number of chassis that failed to
converge"),
}
}
func (s *server) ConvergeAllChassis(...) {
...
s.metrics.attemptedConvergeChassis(float64(len(attempted)))
s.metrics.failedConvergeChassis(float64(len(failed)))
...
}
digitalocean.com
Quick Q & A: Collector Interface
// A collector must be registered.
prometheus.MustRegister(collector)
type Collector interface {
// Describe sends descriptors to channel.
Describe(chan<- *Desc)
// Collect is used by the prometheus registry on a scrape.
// Metrics are sent to the provided channel.
Collect(chan<- Metric)
}
digitalocean.com
metrics instrumentation: third-party exporters
Built using the collector interface
Sometimes we build our own
Often we use others:
github.com/prometheus/mysqld_exporter
github.com/kbudde/rabbitmq_exporter
github.com/prometheus/node_exporter
github.com/digitalocean/openvswitch_exporter
digitalocean.com
metrics instrumentation: in-service collectors
type RateMap struct {
mu sync.Mutex
...
rateMap map[string]*rate
}
var _ prometheus.Collector = &RateMapCollector{}
func (r *RateMapCollector) Describe(ch chan<- *prometheus.Desc) {
ds := []*prometheus.Desc{ r.RequestRate}
for _, d := range ds {
ch <- d
}
}
func (r *RateMapCollector) Collect(ch chan<- prometheus.Metric) {
...
ch <- prometheus.MustNewConstHistogram( r.RequestRate, count, sum, rateCount)
}
digitalocean.com
metrics instrumentation: dashboards #1
state metrics
digitalocean.com
metrics instrumentation: dashboard #2
request
rate
request
latency
digitalocean.com
metrics instrumentation: dashboard #3
utilization
metrics
digitalocean.com
metrics instrumentation: dashboard #4
queries/second
utilization
digitalocean.com
metrics instrumentation: dashboard #6
metrics instrumentation: dashboard #5
saturation
metric
digitalocean.com
test:
load testing:
grpc-clients and goroutines
chaos testing:
take down a component of a system
integration testing:
how does this feature integrate with the cloud?
digitalocean.com
testing: identify key issues
how is our latency?
is there a goroutine leak?
does resource usage increase with traffic?
is there a high error rate?
how are our third-party services?
use tracing to dig down
use cpu and memory profiling
use a worker pool
check logs for types of error
digitalocean.com
testing: tune metrics + alerts
do we need more labels for our metrics?
should we collect more data?
State-based alerting: Is our service up or down?
Threshold alerting: When does our service fail?
digitalocean.com
testing: documentation
set up operational playbooks
document recovery efforts
digitalocean.com
iterate!
(but really, let’s look at some examples…)
digitalocean.com
the plan:
✔ observability DigitalOcean
✔ build --- instrument --- test --- iterate
✔ examples
digitalocean.com
product #1: DHCP
(hvaddrd)
digitalocean.com
product #1: DHCP
hvflowd
hvaddrd
OvS
br0
RNS
OpenFlow
SetParameters
addr0
bolt
DHCPv4 NDP
gRPC
DHCPv6
tapX dropletX
hvaddrd traffic
AddFlows
Hypervisor
main
DHCP: load testing
digitalocean.com
DHCP: load testing (2)
digitalocean.com
DHCP: custom conn collector
digitalocean.com
package dhcp4conn
var _ prometheus.Collector = &collector{}
// A collector gathers connection metrics.
type collector struct {
ReadBytesTotal *prometheus.Desc
ReadPacketsTotal *prometheus.Desc
WriteBytesTotal *prometheus.Desc
WritePacketsTotal *prometheus.Desc
}
Implements the net.conn interface
and allows us to process ethernet
frames for validation and other
purposes.
DHCP: custom conn collector
digitalocean.com
DHCP: goroutine worker pools
digitalocean.com
workC := make(chan request, Workers)
for i := 0; i < Workers; i++ {
go func() {
defer workWG.Done()
for r := range workC {
s.serve(r.buf, r.from)
}
}()
}
Uses buffered channel to process
requests, limiting goroutines and
resource usage.
DHCP: rate limiter collector
digitalocean.com
type RateMap struct {
mu sync.Mutex
...
rateMap map[string]*rate
}
type RateMapCollector struct {
RequestRate *prometheus.Desc
rm *RateMap
buckets []float64
}
func (r *RateMapCollector) Collect(ch chan<- prometheus.Metric) {
…
ch <- prometheus.MustNewConstHistogram(
r.RequestRate,
count, sum,
rateCount)
}
ratemap calculates the exponentially
weighted moving average on a per-client
basis and limits requests
collector gives us a snapshot of rate
distributions
DHCP: rate alerts
digitalocean.com
Rate Limiter
Centralized
LoggingCentralized
LoggingCentralized
LoggingCentralized
Logging
Elastalert
emits log line
DHCP: the final result
digitalocean.com
digitalocean.com
product #2: VPC
digitalocean.com
product #2: VPC
digitalocean.com
VPC: load-testing
load tester repeatedly makes some RPC calls
digitalocean.com
VPC: latency issues (1)
as load testing continued, started to notice
latency in different rpc calls
digitalocean.com
VPC: latency issues (2)
use tracing to take a look
at the /SyncInitialChassis
call
digitalocean.com
VPC: latency issues (3)
Note that spans for some
traces were being dropped.
Slowing down the load tester,
however, eventually
ameliorated that problem.
digitalocean.com
VPC: latency issues (4)
“The fix was to be smarter
and do the queries more
efficiently. The repetitive
loop of queries to rnsdb
really stood out in the
lightstep data.”
- Bob Salmi
digitalocean.com
VPC: remove component
can queue be replaced with simple request-response system?
source: https://programmingisterrible.com/post/162346490883/how-do-you-cut-a-monolith-in-half
digitalocean.com
VPC: chaos testing
Induce south service failure
and see how rabbit
responds
Drop primary and
recovery from
secondary
Induce northd failure
and ensure failover
works
digitalocean.com
VPC: add alerts (1)
state-based
alerts
digitalocean.com
VPC: add alerts (2)
threshold alert
digitalocean.com
conclusion
digitalocean.com
what?
four golden signals, USE metrics
when?
as early as possible
how?
combine with profiling, logging, tracing
thanks!
@snehainguva

Contenu connexe

Tendances

Apache Flink Training: DataStream API Part 1 Basic
 Apache Flink Training: DataStream API Part 1 Basic Apache Flink Training: DataStream API Part 1 Basic
Apache Flink Training: DataStream API Part 1 Basic
Flink Forward
 

Tendances (20)

Service Discovery in Prometheus
Service Discovery in PrometheusService Discovery in Prometheus
Service Discovery in Prometheus
 
Web streams
Web streamsWeb streams
Web streams
 
Monitoring a Kubernetes-backed microservice architecture with Prometheus
Monitoring a Kubernetes-backed microservice architecture with PrometheusMonitoring a Kubernetes-backed microservice architecture with Prometheus
Monitoring a Kubernetes-backed microservice architecture with Prometheus
 
Groovy and Grails talk
Groovy and Grails talkGroovy and Grails talk
Groovy and Grails talk
 
Flink forward SF 2017: Ufuk Celebi - The Stream Processor as a Database: Buil...
Flink forward SF 2017: Ufuk Celebi - The Stream Processor as a Database: Buil...Flink forward SF 2017: Ufuk Celebi - The Stream Processor as a Database: Buil...
Flink forward SF 2017: Ufuk Celebi - The Stream Processor as a Database: Buil...
 
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...
 
Monitoring Kafka w/ Prometheus
Monitoring Kafka w/ PrometheusMonitoring Kafka w/ Prometheus
Monitoring Kafka w/ Prometheus
 
~Ns2~
~Ns2~~Ns2~
~Ns2~
 
Protobuf & Code Generation + Go-Kit
Protobuf & Code Generation + Go-KitProtobuf & Code Generation + Go-Kit
Protobuf & Code Generation + Go-Kit
 
Chronix: Long Term Storage and Retrieval Technology for Anomaly Detection in ...
Chronix: Long Term Storage and Retrieval Technology for Anomaly Detection in ...Chronix: Long Term Storage and Retrieval Technology for Anomaly Detection in ...
Chronix: Long Term Storage and Retrieval Technology for Anomaly Detection in ...
 
Sessionization with Spark streaming
Sessionization with Spark streamingSessionization with Spark streaming
Sessionization with Spark streaming
 
Network simulator 2
Network simulator 2Network simulator 2
Network simulator 2
 
Ntp cheat sheet
Ntp cheat sheetNtp cheat sheet
Ntp cheat sheet
 
Apache Flink Training: DataStream API Part 1 Basic
 Apache Flink Training: DataStream API Part 1 Basic Apache Flink Training: DataStream API Part 1 Basic
Apache Flink Training: DataStream API Part 1 Basic
 
Developing High Performance Application with Aerospike & Go
Developing High Performance Application with Aerospike & GoDeveloping High Performance Application with Aerospike & Go
Developing High Performance Application with Aerospike & Go
 
Streaming Dataflow with Apache Flink
Streaming Dataflow with Apache Flink Streaming Dataflow with Apache Flink
Streaming Dataflow with Apache Flink
 
Shrug2017 arcpy data_and_you
Shrug2017 arcpy data_and_youShrug2017 arcpy data_and_you
Shrug2017 arcpy data_and_you
 
Ns2
Ns2Ns2
Ns2
 
Efficient and Fast Time Series Storage - The missing link in dynamic software...
Efficient and Fast Time Series Storage - The missing link in dynamic software...Efficient and Fast Time Series Storage - The missing link in dynamic software...
Efficient and Fast Time Series Storage - The missing link in dynamic software...
 
Session 1 introduction to ns2
Session 1   introduction to ns2Session 1   introduction to ns2
Session 1 introduction to ns2
 

Similaire à Observability and Product Release

Monitoring_with_Prometheus_Grafana_Tutorial
Monitoring_with_Prometheus_Grafana_TutorialMonitoring_with_Prometheus_Grafana_Tutorial
Monitoring_with_Prometheus_Grafana_Tutorial
Tim Vaillancourt
 
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
Paul Brebner
 

Similaire à Observability and Product Release (20)

observability pre-release: using prometheus to test and fix new software
observability pre-release: using prometheus to test and fix new softwareobservability pre-release: using prometheus to test and fix new software
observability pre-release: using prometheus to test and fix new software
 
Prometheus Everything, Observing Kubernetes in the Cloud
Prometheus Everything, Observing Kubernetes in the CloudPrometheus Everything, Observing Kubernetes in the Cloud
Prometheus Everything, Observing Kubernetes in the Cloud
 
MicroCPH: Observability and Product Release
MicroCPH: Observability and Product ReleaseMicroCPH: Observability and Product Release
MicroCPH: Observability and Product Release
 
NetScaler Web2.0 Push Technology Overview
NetScaler Web2.0 Push Technology OverviewNetScaler Web2.0 Push Technology Overview
NetScaler Web2.0 Push Technology Overview
 
Monitoring using Prometheus and Grafana
Monitoring using Prometheus and GrafanaMonitoring using Prometheus and Grafana
Monitoring using Prometheus and Grafana
 
Networking and Go: An Engineer's Journey (Strangeloop 2019)
Networking and Go: An Engineer's Journey (Strangeloop 2019)Networking and Go: An Engineer's Journey (Strangeloop 2019)
Networking and Go: An Engineer's Journey (Strangeloop 2019)
 
Observability in a Dynamically Scheduled World
Observability in a Dynamically Scheduled WorldObservability in a Dynamically Scheduled World
Observability in a Dynamically Scheduled World
 
Monitoring_with_Prometheus_Grafana_Tutorial
Monitoring_with_Prometheus_Grafana_TutorialMonitoring_with_Prometheus_Grafana_Tutorial
Monitoring_with_Prometheus_Grafana_Tutorial
 
Python and trending_data_ops
Python and trending_data_opsPython and trending_data_ops
Python and trending_data_ops
 
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus
 
Orchestration Tool Roundup - Arthur Berezin & Trammell Scruggs
Orchestration Tool Roundup - Arthur Berezin & Trammell ScruggsOrchestration Tool Roundup - Arthur Berezin & Trammell Scruggs
Orchestration Tool Roundup - Arthur Berezin & Trammell Scruggs
 
Infrastructure & System Monitoring using Prometheus
Infrastructure & System Monitoring using PrometheusInfrastructure & System Monitoring using Prometheus
Infrastructure & System Monitoring using Prometheus
 
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
 
如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰
 
Monitoring MySQL with Prometheus and Grafana
Monitoring MySQL with Prometheus and GrafanaMonitoring MySQL with Prometheus and Grafana
Monitoring MySQL with Prometheus and Grafana
 
OSMC 2017 | Monitoring MySQL with Prometheus and Grafana by Julien Pivotto
OSMC 2017 | Monitoring  MySQL with Prometheus and Grafana by Julien PivottoOSMC 2017 | Monitoring  MySQL with Prometheus and Grafana by Julien Pivotto
OSMC 2017 | Monitoring MySQL with Prometheus and Grafana by Julien Pivotto
 
Google Cloud Platform monitoring with Zabbix
Google Cloud Platform monitoring with ZabbixGoogle Cloud Platform monitoring with Zabbix
Google Cloud Platform monitoring with Zabbix
 
Prometheus and Grafana
Prometheus and GrafanaPrometheus and Grafana
Prometheus and Grafana
 
Cf summit-2016-monitoring-cf-sensu-graphite
Cf summit-2016-monitoring-cf-sensu-graphiteCf summit-2016-monitoring-cf-sensu-graphite
Cf summit-2016-monitoring-cf-sensu-graphite
 
Application Monitoring using Open Source: VictoriaMetrics - ClickHouse
Application Monitoring using Open Source: VictoriaMetrics - ClickHouseApplication Monitoring using Open Source: VictoriaMetrics - ClickHouse
Application Monitoring using Open Source: VictoriaMetrics - ClickHouse
 

Dernier

一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
ayvbos
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
JOHNBEBONYAP1
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
ydyuyu
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Monica Sydney
 
PowerDirector Explination Process...pptx
PowerDirector Explination Process...pptxPowerDirector Explination Process...pptx
PowerDirector Explination Process...pptx
galaxypingy
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
ydyuyu
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Monica Sydney
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Monica Sydney
 

Dernier (20)

一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
 
PowerDirector Explination Process...pptx
PowerDirector Explination Process...pptxPowerDirector Explination Process...pptx
PowerDirector Explination Process...pptx
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf
 
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
 
Microsoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck MicrosoftMicrosoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck Microsoft
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirt
 
Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 

Observability and Product Release