Live:CloudOps Webinars & Hands-on Workshops ·Register ↗
Skip to main content

பல்வேறு நிரலாக்க மொழிகளுக்கான Instrumentation மாதிரிகள்

இந்தப் பிரிவு பல்வேறு நிரலாக்க மொழிகள் மற்றும் frameworks-ல் AWS Application Signals-உடன் பயன்பாடுகளை instrument செய்வதற்கான வழிகாட்டுதலை வழங்குகிறது.

Demo பயன்பாடுகள்

Auto-Instrumentation

Auto-instrumentation பிரபலமான frameworks மற்றும் libraries-ஐ தானாக கண்டறிந்து instrument செய்வதன் மூலம் குறியீடு மாற்றமின்றி observability-ஐ வழங்குகிறது. Application Signals-உடன் விரைவாக தொடங்குவதற்கு இது பரிந்துரைக்கப்படும் அணுகுமுறையாகும்.

Java Spring Boot பயன்பாடுகள்

Auto-Instrumentation அமைப்பு:

java -javaagent:/path/to/aws-opentelemetry-agent.jar \
-Dotel.service.name=my-java-app \
-jar your-app.jar

குறிப்பு Microservices:

Python பயன்பாடுகள்

Auto-Instrumentation அமைப்பு:

pip install pip install aws-opentelemetry-distro
opentelemetry-instrument \
--service_name my-python-app \
python your_app.py

குறிப்பு Microservices:

Node.js பயன்பாடுகள்

Auto-Instrumentation அமைப்பு:

npm install @aws/opentelemetry-auto-instrumentation
node --require @aws/opentelemetry-auto-instrumentation \
your_app.js

குறிப்பு Microservices:

.NET பயன்பாடுகள்

Auto-Instrumentation அமைப்பு:

// Program.cs-ல் கட்டமைக்கவும்
builder.Services.AddOpenTelemetry()
.WithTracing(builder => builder
.AddAspNetCoreInstrumentation()
.AddOtlpExporter());

குறிப்பு Microservices:

Manual Instrumentation

Manual instrumentation என்பது எந்த auto-instrumentation agents இல்லாமல் OpenTelemetry SDK-களின் முழுமையான end-to-end ஒருங்கிணைப்பை உள்ளடக்கியது. இந்த அணுகுமுறை telemetry சேகரிப்பின் மீது அதிகபட்ச கட்டுப்பாட்டை வழங்குகிறது, auto-instrumentation-ஐ ஆதரிக்காத மொழிகளுக்கு இது தேவைப்படுகிறது.

Java — Manual Spans

import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.api.trace.Span;

Tracer tracer = GlobalOpenTelemetry.getTracer("my-service");

Span span = tracer.spanBuilder("custom-operation")
.setAttribute("user.id", userId)
.startSpan();
try {
// உங்கள் வணிக தர்க்கம்
processOrder(order);
} finally {
span.end();
}

Python — Manual Spans

from opentelemetry import trace

tracer = trace.get_tracer(__name__)

with tracer.start_as_current_span("process-payment") as span:
span.set_attribute("payment.amount", amount)
span.set_attribute("payment.currency", currency)
result = process_payment(amount, currency)
span.set_attribute("payment.success", result.success)

.NET — Manual Spans

using OpenTelemetry.Trace;

var tracer = tracerProvider.GetTracer("my-service");

using var span = tracer.StartActiveSpan("validate-user");
try
{
span.SetAttribute("user.email", user.Email);
var isValid = await ValidateUserAsync(user);
span.SetAttribute("validation.result", isValid);
return isValid;
}
catch (Exception ex)
{
span.SetStatus(Status.Error, ex.Message);
throw;
}

Node.js — Manual Spans

const { trace } = require('@opentelemetry/api');

const tracer = trace.getTracer('my-service');

async function processOrder(order) {
const span = tracer.startSpan('process-order');
span.setAttribute('order.id', order.id);
span.setAttribute('order.amount', order.amount);

try {
await validateOrder(order);
await chargePayment(order);
span.setAttribute('order.status', 'completed');
} catch (error) {
span.setStatus({ code: trace.SpanStatusCode.ERROR, message: error.message });
throw error;
} finally {
span.end();
}
}

Go பயன்பாடுகள் (Manual மட்டும்)

Go-க்கு manual instrumentation தேவை (auto-instrumentation கிடைக்காது).

import (
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/attribute"
)

tracer := otel.Tracer("my-service")

_, span := tracer.Start(ctx, "process-request")
span.SetAttributes(
attribute.String("user.id", userID),
attribute.Float64("request.duration", duration),
)
defer span.End()

குறிப்பு செயல்படுத்தல்:

Rust பயன்பாடுகள் (Manual மட்டும்)

குறிப்பு செயல்படுத்தல்:

Combined Instrumentation (Auto + Manual)

Combined instrumentation baseline telemetry-க்கு auto-instrumentation agents-ஐ பயன்படுத்துகிறது, அதே நேரத்தில் manual instrumentation மூலம் தனிப்பயன் spans, attributes மற்றும் வணிக context-ஐ சேர்க்கிறது.

குறிப்பு செயல்படுத்தல்கள்:

முக்கிய Manual Instrumentation சிறந்த நடைமுறைகள்

  • வணிக Context: Spans-க்கு தொடர்புடைய வணிக attributes-ஐ (customer_id, order_value, product_category) எப்போதும் சேர்க்கவும்
  • பிழை கையாளுதல்: விதிவிலக்குகளை பதிவு செய்து பொருத்தமான span status codes-ஐ அமைக்கவும்
  • தனிப்பயன் மெட்ரிக்குகள்: தொழில்நுட்ப மெட்ரிக்குகளுடன் சேர்த்து வணிக-குறிப்பிட்ட மெட்ரிக்குகளை உருவாக்கவும்
  • Span படிநிலை: சிக்கலான செயல்பாடுகளை பிரிக்க child spans-ஐ பயன்படுத்தவும்
  • Attribute பெயரிடல்: முடிந்தவரை OpenTelemetry semantic conventions-ஐ பின்பற்றவும்
  • செயல்திறன் தாக்கம்: அதிக throughput paths-ல் instrumentation overhead பற்றி கவனமாக இருக்கவும்