-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Gianluca Arbezzano
committed
Mar 30, 2020
1 parent
9e24c18
commit 60771d9
Showing
12 changed files
with
176 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,4 +10,4 @@ eventLink: http://2017.apiconf.it/ | |
city: "" | ||
links: {} | ||
|
||
--- | ||
--- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
--- | ||
img: /img/got-your-back.jpg | ||
layout: post | ||
title: "Why code instrumentation?" | ||
date: 2020-03-29 09:08:27 | ||
categories: [post] | ||
tags: [golang, codeinstrumentation, o11y, opentelemetry, opentracing, prometheus, sre] | ||
summary: "I decided to finally create a category about code instrumentation. | ||
Because I am a develop. And I think it matters. It is important to write better | ||
code and more reliability application that we can learn from." | ||
changefreq: daily | ||
--- | ||
|
||
I am writing this blog post as a common introduction for a new category I would | ||
like to write about consistently on my blog. If this is the first time you land | ||
here this is my blog, and I write about everything that catches my attention but | ||
sometime earlier sometime later on I realize I can group my posts in categories, | ||
and that's what I am doing now. | ||
|
||
Some of them are: [Assemble Kubernetes](/planet/assemble-kubernetes.html), | ||
[Docker](/planet/docker.html), [MockMania](/planet/mockmania.html). This one | ||
will be called `Code Instrumentation`. | ||
|
||
There are a lot of people writing about observability, monitoring and I did it | ||
for the last 3 years as well. I learned a lot along the way but what I think is | ||
crucial is that developers has to write code that is | ||
understandable and easy to debug where it is more valuable, in production. And | ||
if an application or a system is hard to figure out we as a developer play a | ||
mojor role on it. | ||
|
||
That's why Site Reliability Engineering (SRE) is not related to ops, servers, | ||
Kubernetes but it is something that plays its match in your code. | ||
|
||
What's why I think SRE and DevOps are different, not at all connected. | ||
|
||
The technologies that are leading the landscape are: | ||
|
||
1. Prometheus but not the time series database, their client libraries and the | ||
exposition format, now branded from the community and the Cloud Native | ||
Computing Foundation (CNCF) as OpenMetrics | ||
2. OpenTracing, OpenCensus and OpenTelemetry. They are part of the same bullet | ||
points because I think about them as the consequence of each other since what | ||
I hope is "THE LAST ONE", OpenTelemetry. They are instrumentation libraries | ||
and specification to increase interoperability and to avoid vendor lock-in | ||
for what concerns distributed tracing and metrics. I hope logs will jump | ||
onboard at some point | ||
|
||
## Prometheus and OpenMetrics | ||
|
||
I wrote about this topic previously, so have a look there if you do not know | ||
what I am speaking about. | ||
|
||
I think they are worth to mention here because that's how I learned the effect | ||
of good or bad code instrumentation, and the fact that it has to happen in your | ||
code, when you develop it. | ||
|
||
It has the same weight has writing a good data structure, writing solid unit | ||
tests, or picking the right design pattern. | ||
|
||
## OpenTelemetry (otel) | ||
|
||
As I said I will refer to otel when I can, not because I think OpenTracing or | ||
OpenCensus is bad, but because I do not see this as a religion, but for me it is | ||
a technical problem, they is well spread and it has to find a good answer. | ||
|
||
Those communities decided to merge to otel in the way they are doing, good or | ||
bad? We can get a beer at some point and I will tell you. It is out of scope. | ||
|
||
## What I am gonna talk about | ||
|
||
This is a long new category introduction blog post probably but that's it. Over | ||
the last two years I tried to share what I experienced around this topic with a | ||
workshop called: "Application Monitoring". A lot of the articles that I will | ||
write comes from there, and it is an attempt to share what I think worked or | ||
failed. | ||
|
||
## Links | ||
|
||
* [All about Code Instrumentation](/planet/code-instrumentation.html) from my blog | ||
* [ShopMany](https://github.com/gianarb/shopmany) is the application I developed for the workshop | ||
* [Workshop notes](https://github.com/gianarb/workshop-observability) contains notes, exercises and solutions for the lessons I | ||
proposed in the workshop itself | ||
* [honeycomb](https://www.honeycomb.io/blog/) because when you speak about o11y you have to quote them! | ||
* [My newsletter](/tinyletter.html) is probably the best way to stay in touch with the content I | ||
create | ||
* [Twitter](https://twitter.com/gianarb) is the best way to stay in touch with me |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
--- | ||
layout: default | ||
title: Code Instrumentation | ||
summary: | ||
img: /img/got-your-back.jpg | ||
--- | ||
<div class="container"> | ||
<div class="row mt-3"> | ||
<div class="col-md-12"> | ||
<h2> | ||
Code Instrumentation | ||
<a href="/planet/code-instrumentation.xml" target="_blank"><span style="font-size: 70%;color:#F78422"><i class="fas fa-rss"></i></span></a> | ||
</h2> | ||
</div> | ||
</div> | ||
|
||
<div class="row mt-3"> | ||
<div class="col-md-10 text-left"> | ||
<blockquote class="blockquote"> | ||
<p class="mb-0">If you instrument your code, watch it deploy, | ||
then ask “is it doing what I expect, does anything else look | ||
weird” as a habit? You can build a system that is both | ||
understandable and well-understood. If you can see what you’re | ||
doing, and catch errors swiftly, it never has to become a | ||
shitty hairball in the first place. That is a choice.</p> | ||
<footer class="blockquote-footer"> | ||
Charity Major | ||
<cite title="CTO Honeycomb.io"><a href="https://charity.wtf/2020/03/03/observability-is-a-many-splendored-thing/" target="_blank">OBSERVABILITY IS A MANY-SPLENDORED DEFINITION</a></cite> | ||
</footer> | ||
</blockquote> | ||
</div> | ||
</div> | ||
|
||
<div class="row mt-3"> | ||
<div class="col-md-12 lead"> | ||
<a href="/blog/why-code-instrumentation">Read about why</a> I am grouping my articles around this expecit "Code | ||
Intrumentation" category. Because it matters. It matters lot. | ||
</div> | ||
</div> | ||
|
||
<div id="blog" class="row mt-3"> | ||
<div class="col-md-12"> | ||
<h3>Posts</h3> | ||
{% for post in site.categories['post'] %} | ||
{% if post.tags contains "codeinstrumentation" %} | ||
{% include post_detail.html %} | ||
{% endif %} | ||
{% endfor %} | ||
</div> | ||
</div> | ||
|
||
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
--- | ||
layout: null | ||
--- | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<feed xmlns="http://www.w3.org/2005/Atom"> | ||
<title>Code Instrumentation from @gianarb</title> | ||
<link href="http://gianarb.github.io/atom.xml" rel="self"/> | ||
<link href="http://gianarb.github.io/"/> | ||
<updated>{{ site.time | date_to_xmlschema }}</updated> | ||
<id>http://gianarb.it/planet/code-instrumentation.xml</id> | ||
<author> | ||
<name>Gianluca Arbezzano</name> | ||
<uri>http://gianarb.it</uri> | ||
<email>[email protected]</email> | ||
</author> | ||
{% for post in site.categories['post'] %} | ||
{% if post.tags contains "codeinstrumentation" %} | ||
<entry> | ||
<title>{{ post.title }}</title> | ||
<link rel="alternate" type="text/html" href="https://gianarb.it{{ post.url }}"/> | ||
<description>{{ post.summary | xml_escape }}</description> | ||
<image>{{ post.img | default: '/img/assemble-kubernetes.png' }}</image> | ||
<updated>{{ post.date | date_to_xmlschema }}</updated> | ||
<pubDate>{{ post.date | date_to_xmlschema }}</pubDate> | ||
<id>https://gianarb.it{{ post.url }}</id> | ||
<content type="html">{{ post.content | xml_escape }}</content> | ||
</entry> | ||
{% endif %} | ||
{% endfor %} | ||
</feed> |