System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) · บทเรียน

เทคนิคการติดตั้งเครื่องมืออัตโนมัติ

เรียนรู้การใช้ฟีเจอร์การติดตั้งเครื่องมืออัตโนมัติของ OpenTelemetry เพื่อเพิ่มความสามารถในการสังเกตระบบให้แอปพลิเคชันเดิมได้อย่างรวดเร็ว โดยเปลี่ยนโค้ดเพียงเล็กน้อย

บทเรียน 1 จาก 411 ขั้นตอน

เทคนิคการติดตั้งเครื่องมืออัตโนมัติ เป็นบทเรียน System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

Intro to Auto-Instrumentation

Welcome to Auto-Instrumentation Techniques! This lesson is all about adding observability to your applications without touching their code.

Think of it as a magic trick: your app starts reporting logs, metrics, and traces, but you didn't write a single line of extra code for it. This is incredibly powerful for existing or legacy systems.

How Auto-Instrumentation Works

So, how does this magic happen? Auto-instrumentation typically uses specialized agents or profilers that attach to your application at runtime.

  • Bytecode Manipulation: For languages like Java, agents can modify the application's bytecode as it loads, injecting OpenTelemetry's tracing and metric collection logic.
  • Library Wrapping: For other languages, it might involve dynamically wrapping common libraries (like HTTP clients or database drivers) to intercept their calls.

Key Benefits & Use Cases

Auto-instrumentation offers significant advantages:

  • Rapid Setup: Get basic observability running in minutes, not hours or days.
  • No Code Changes: Crucial for legacy applications where modifying code is risky or impossible.
  • Baseline Visibility: Provides immediate insights into common operations like HTTP requests, database queries, and method executions.
  • Reduced Effort: Less developer time spent writing boilerplate instrumentation code.

OpenTelemetry Java Agent

A prominent example is the OpenTelemetry Java Agent. It's a single JAR file that you attach to your Java Virtual Machine (JVM) using a command-line argument.

Once attached, it automatically instruments many popular Java libraries and frameworks, generating traces, metrics, and logs without any code modification in your application.

Simple Java App Baseline

Let's look at a very simple Java application. This program runs a main method and calls another method sayHello. Normally, you'd only see its print statements.

Try running it to see its normal output:

public class AutoInstrumentDemo {
  public static void main(String[] args) {
    System.out.println("Starting app...");
    sayHello();
    System.out.println("App finished.");
  }

  public static void sayHello() {
    System.out.println("Hello from sayHello!");
  }
}

Running with the OTel Agent

To auto-instrument the previous app, you would typically run it like this from your terminal (assuming you have the agent JAR):

java -javaagent:path/to/opentelemetry-javaagent.jar -jar AutoInstrumentDemo.jar

The -javaagent flag tells the JVM to load the OpenTelemetry agent. The agent then automatically detects and creates spans for the main and sayHello method calls, and sends them to your configured OpenTelemetry Collector.

Auto-Tracing HTTP Calls

Auto-instrumentation is particularly effective for common I/O operations like HTTP requests. The agent automatically detects these calls made by standard libraries and creates spans showing their latency and success/failure.

Here's a simple Java program that simulates an HTTP call. If run with the OTel agent, this 'simulated' call would appear as a network span.

public class HttpCallDemo {
  public static void main(String[] args) {
    System.out.println("Making a simulated HTTP call...");
    simulateHttpRequest();
    System.out.println("Simulated call finished.");
  }

  public static void simulateHttpRequest() {
    try {
      // In a real app, this would be an actual HTTP client call
      // e.g., new java.net.http.HttpClient().send(...)
      Thread.sleep(100); // Simulate network delay
      System.out.println("HTTP call logic executed.");
    } catch (InterruptedException e) {
      Thread.currentThread().interrupt();
      System.err.println("HTTP call interrupted.");
    }
  }
}

What Data is Collected?

When using auto-instrumentation, you typically get:

  • Traces: Spans for method calls, HTTP requests (incoming and outgoing), database queries, and message queue operations.
  • Metrics: Basic metrics like request latency, error rates, and call counts for instrumented operations.
  • Logs: Some agents can also capture logs and enrich them with trace and span IDs, helping to correlate logs with specific operations.

When Auto-Instrumentation Falls Short

While powerful, auto-instrumentation has limitations:

  • Lack of Business Context: It won't automatically know your application's specific business logic (e.g., "user signup" vs. just "HTTP POST").
  • Custom Attributes: You can't easily add custom attributes specific to your domain without manual code changes.
  • Limited Custom Metrics/Logs: It provides generic signals, but if you need very specific custom metrics or log enrichment, manual intervention is often required.

This is where manual instrumentation (our next lesson!) becomes essential to fill the gaps.

Quick Check: Auto-Instrumentation

Which of the following are key benefits of using OpenTelemetry's auto-instrumentation techniques?

Recap: Auto-Instrumentation

In this lesson, we explored OpenTelemetry's auto-instrumentation. You learned that it uses agents or profilers to inject observability logic into your application at runtime, without requiring source code modifications.

This technique provides rapid, baseline visibility into common operations like HTTP calls and method executions, making it ideal for quickly gaining insights into new or legacy applications. However, for deep business context and custom data, manual instrumentation is needed.

เริ่มต้นได้ฟรี

เรียนรู้ System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
12
บทเรียน
48

คำถามที่พบบ่อย

บทเรียน “เทคนิคการติดตั้งเครื่องมืออัตโนมัติ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เทคนิคการติดตั้งเครื่องมืออัตโนมัติ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) ให้อัปเกรดเป็น CoddyKit PRO คอร์ส System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เทคนิคการติดตั้งเครื่องมืออัตโนมัติ”

เรียนรู้การใช้ฟีเจอร์การติดตั้งเครื่องมืออัตโนมัติของ OpenTelemetry เพื่อเพิ่มความสามารถในการสังเกตระบบให้แอปพลิเคชันเดิมได้อย่างรวดเร็ว โดยเปลี่ยนโค้ดเพียงเล็กน้อย คุณปฏิบัติ System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “เทคนิคการติดตั้งเครื่องมืออัตโนมัติ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) นี้ได้ไหม

ได้ บทเรียน System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เทคนิคการติดตั้งเครื่องมืออัตโนมัติ
  2. แนวทางปฏิบัติที่ดีในการติดตั้งเครื่องมือด้วยตนเอง
  3. การส่งต่อบริบทและสัมภาระข้อมูล
  4. แอตทริบิวต์ เหตุการณ์ และสถานะของช่วง
← กลับไปที่ System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry)