Skip to content

Commit

Permalink
blog skeleton
Browse files Browse the repository at this point in the history
  • Loading branch information
IvannKurchenko committed Jan 7, 2024
1 parent 8558960 commit 7b17eb8
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 113 deletions.
115 changes: 2 additions & 113 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,55 +1,9 @@
# Created by https://www.toptal.com/developers/gitignore/api/java,intellij,maven
# Edit at https://www.toptal.com/developers/gitignore?templates=java,intellij,maven

### Intellij ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf

# AWS User-specific
.idea/**/aws.xml

# Generated files
.idea/**/contentModel.xml

# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml

# Gradle
.idea/**/gradle.xml
.idea/**/libraries

# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
.idea

# CMake
cmake-build-*/

# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

Expand All @@ -59,61 +13,6 @@ out/
# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Cursive Clojure plugin
.idea/replstate.xml

# SonarLint plugin
.idea/sonarlint/

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

# Editor-based Rest Client
.idea/httpRequests

# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

### Intellij Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721

# *.iml
# modules.xml
# .idea/misc.xml
# *.ipr

# Sonarlint plugin
# https://plugins.jetbrains.com/plugin/7973-sonarlint
.idea/**/sonarlint/

# SonarQube Plugin
# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin
.idea/**/sonarIssues.xml

# Markdown Navigator plugin
# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced
.idea/**/markdown-navigator.xml
.idea/**/markdown-navigator-enh.xml
.idea/**/markdown-navigator/

# Cache file creation bug
# See https://youtrack.jetbrains.com/issue/JBR-2257
.idea/$CACHE_FILE$

# CodeStream plugin
# https://plugins.jetbrains.com/plugin/12206-codestream
.idea/codestream.xml

# Azure Toolkit for IntelliJ plugin
# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij
.idea/**/azureSettings.xml

### Java ###
# Compiled class file
*.class
Expand Down Expand Up @@ -149,17 +48,7 @@ pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar

# Eclipse m2e generated files
# Eclipse Core
.project
# JDT-specific (Eclipse Java Development Tools)
.classpath

# End of https://www.toptal.com/developers/gitignore/api/java,intellij,maven
.mvn/

# Compiled class file
*.class
Expand Down
61 changes: 61 additions & 0 deletions blog/BLOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
OpenTelemetry: Building decoupled monitoring

### Short description
In this blog post, we will explore to use OpenTelemetry and OTLP protocol to build an observability infrastructure
easy to extend and decoupled from the application.

## Introduction
TODO
- What is OpenTelemetry in short
- What is OTLP in short?
- Blog post purpose - show how to use OpenTelemetry and its protocol to decouple the monitoring infrastructure
from the application.

OpenTelemetry is a set of tools, APIs and SDKs used to instrument, generate, collect and export telemetry data
and not a storage or visualization solution.

## System under monitoring
To showcase the capabilities of OpenTelemetry lets first build a simple system to monitor.
TODO:
- System purpose and
- System architecture;

## Direct publishing to an underlying monitoring system
TODO:
- How to use OpenTelemetry to publish metrics directly to a monitoring system - Prometheus;
- How to use OpenTelemetry to publish traces directly to a monitoring system - Jaeger;
- How to use OpenTelemetry to publish logs directly to a monitoring system - ELK;

Show diagram and code snippets.

## Publishing to a collector
TODO:
- What is OTLP protocol in details;
- What is a OTLP collector and exporter etc;
- How to use OpenTelemetry to publish metrics to a collector;
- How to use OpenTelemetry to publish traces to a collector;
- How to use OpenTelemetry to publish logs to a collector;

Lets take Grafana stack as for monitoring infrastructure:

Configure the collector to export:
- Metrics to Mimir;
- Traces to Tempo;
- Logs to Loki;

UI is Grafana.

Show diagram and code snippets.

## Adding a new monitoring system
Show how to add a new monitoring system to the infrastructure - for Signoz.

## Managing signals
As extra we can show how to manage signals - metrics, traces and logs - e.g. filter, transform, aggregate etc. using
collector processors.

## Links and further reading
Code source for this blog post can be found [here](TODO)
OpenTelemetry links:
- OTLP protocol;
- Supported languages;

0 comments on commit 7b17eb8

Please sign in to comment.