ããã³ããšã³ã忣ãã¬ãŒã·ã³ã°ããã¹ã¿ãŒãããã€ã¯ããµãŒãã¹ã®ãªã¯ãšã¹ããããŒãå¯èŠåãããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããã¢ããªã±ãŒã·ã§ã³ã®ä¿¡é Œæ§ãåäžãããŸãã
ããã³ããšã³ã忣ãã¬ãŒã·ã³ã°ïŒãã€ã¯ããµãŒãã¹ã®ãªã¯ãšã¹ããããŒãå¯èŠåãã
仿¥ã®è€éãªã¢ããªã±ãŒã·ã§ã³ã¢ãŒããã¯ãã£ãç¹ã«ãã€ã¯ããµãŒãã¹ã掻çšãããã®ã§ã¯ãç°ãªããµãŒãã¹ãã³ã³ããŒãã³ããæšªæãããªã¯ãšã¹ãã®æµããçè§£ããããšãæãéèŠã§ããããã³ããšã³ã忣ãã¬ãŒã·ã³ã°ã¯ããããã®ãªã¯ãšã¹ããããŒãå¯èŠåããããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããæçµçã«ã¢ããªã±ãŒã·ã§ã³ã®ä¿¡é Œæ§ãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããããã®åŒ·åãªãœãªã¥ãŒã·ã§ã³ãæäŸããŸãããã®å æ¬çãªã¬ã€ãã§ã¯ãããã³ããšã³ã忣ãã¬ãŒã·ã³ã°ã®æŠå¿µãå©ç¹ãããã³å®è·µçãªå®è£ ã«ã€ããŠè©³ããæãäžããŠãããŸãã
忣ãã¬ãŒã·ã³ã°ãšã¯ïŒ
忣ãã¬ãŒã·ã³ã°ã¯ã忣ã·ã¹ãã ãééãããªã¯ãšã¹ãã远跡ããæ¹æ³ã§ããåã ã®ã³ã³ããŒãã³ãã«çŠç¹ãåœãŠãåŸæ¥ã®ãã®ã³ã°ãšã¯ç°ãªãã忣ãã¬ãŒã·ã³ã°ã¯ãªã¯ãšã¹ãã®å šè¡çšãå æ¬çã«å¯èŠåããŸããããã«ããããµãŒãã¹éã®äŸåé¢ä¿ãçè§£ããé ãæäœãç¹å®ããè€æ°ã®ã³ã³ããŒãã³ãã«ãŸããããšã©ãŒã®æ ¹æ¬åå ãçªãæ¢ããããšãã§ããŸããã·ã¹ãã ãéãåãªã¯ãšã¹ãã®å®å šãªãšã³ãããŒãšã³ãã®ããŒããããã ãšèããŠãã ããã
忣ãã¬ãŒã·ã³ã°ã®äž»èŠãªæŠå¿µ
- ãã¬ãŒã¹: ã·ã¹ãã å šäœãæµããå®å šãªãªã¯ãšã¹ãã衚ããŸããäŸãã°ããŠãŒã¶ãŒããŠã§ãããŒãžãèªã¿èŸŒããšãç°ãªããã€ã¯ããµãŒãã¹ãžã®äžé£ã®ãªã¯ãšã¹ããããªã¬ãŒãããåäžã®ãã¬ãŒã¹ã圢æããŸãã
- ã¹ãã³: ãã¬ãŒã¹å ã®äœæ¥åäœã衚ããéåžžã¯ç¹å®ã®ãµãŒãã¹ãã³ã³ããŒãã³ããžã®ãªã¯ãšã¹ãã§ããåã¹ãã³ã«ã¯ãæäœåãã¿ã€ã ã¹ã¿ã³ããã¿ã°ããã°ãªã©ã®ã¡ã¿ããŒã¿ãå«ãŸããŸãã
- ã³ã³ããã¹ãäŒæ: ãã¬ãŒã·ã³ã°æ å ±ïŒãã¬ãŒã¹IDãã¹ãã³IDïŒããµãŒãã¹éã§æž¡ãããä»çµã¿ã§ããããã«ãããåããã¬ãŒã¹ã«å±ããã¹ãã³ãæ£ãããªã³ã¯ãããŸãã
- ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³: ã¹ãã³ãçæããã³ã³ããã¹ããäŒæãããããã«ã¢ããªã±ãŒã·ã§ã³ã«ã³ãŒãã远å ããããã»ã¹ã§ããããã¯æåã§è¡ãããšããã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ã䜿çšããŠè¡ãããšãã§ããŸãã
ãªãããã³ããšã³ã忣ãã¬ãŒã·ã³ã°ãéèŠãªã®ãïŒ
ããã¯ãšã³ãã®åæ£ãã¬ãŒã·ã³ã°ã¯ååã«ç¢ºç«ãããŠããŸããããã¬ãŒã·ã³ã°ãããã³ããšã³ãã«æ¡åŒµããããšã«ã¯ãç¹ã«ããã³ããšã³ããè€æ°ã®ããã¯ãšã³ããµãŒãã¹ãšã®ããåãã調æŽãããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã«ãããŠã倧ããªå©ç¹ããããŸãã
ããã³ããšã³ã忣ãã¬ãŒã·ã³ã°ã®ã¡ãªãã
- ãšã³ãããŒãšã³ãã®å¯èŠæ§: ãŠãŒã¶ãŒã®ãã©ãŠã¶ããããã¯ãšã³ããµãŒãã¹ãŸã§ããªã¯ãšã¹ããããŒã®å šäœåãææ¡ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹å šäœã«é¢ããæŽå¯ãåŸãããšãã§ããŸãã
- ããã©ãŒãã³ã¹ããã«ããã¯ã®ç¹å®: é ãæäœãçªãæ¢ããããã³ããšã³ããŸãã¯ããã¯ãšã³ãã«èµ·å ããããã©ãŒãã³ã¹åé¡ã®æ ¹æ¬åå ãç¹å®ããŸããäŸãã°ãããã³ããšã³ãã®ãã¿ã³ã¯ãªãã¯ã«ãã£ãŠããªã¬ãŒãããé ãAPIåŒã³åºããªã©ã§ãã
- ãããã°ã®æ¹å: ããã³ããšã³ãã®ã€ãã³ããããã¯ãšã³ãã®ãã°ããã¬ãŒã¹ãšçžé¢ãããããšã§ãããã°ãç°¡çŽ åããããè¿ éãªæ ¹æ¬åå åæãå¯èœã«ããŸãããŠãŒã¶ãŒããšã©ãŒãå ±åããã·ããªãªãæ³åããŠã¿ãŠãã ãããããã³ããšã³ããã¬ãŒã·ã³ã°ã䜿ãã°ããã©ãŠã¶ã§ã®åœŒãã®ã¢ã¯ã·ã§ã³ã察å¿ããããã¯ãšã³ããªã¯ãšã¹ããšçžé¢ãããããšãã§ãããããã°ãã¯ããã«ç°¡åã«ãªããŸãã
- ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®åäž: ããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããŠè§£æ±ºããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®å¿çæ§ãšå šäœçãªãšã¯ã¹ããªãšã³ã¹ãåäžãããããšãã§ããŸãã
- ããã¢ã¯ãã£ããªç£èŠ: ãã¬ãŒã¹ããŒã¿ã«åºã¥ããŠã¢ã©ãŒããèšå®ããç°åžžãæ€ç¥ããŠããŠãŒã¶ãŒã«åœ±é¿ãåã¶åã«æœåšçãªåé¡ã«ããã¢ã¯ãã£ãã«å¯ŸåŠããŸãã
- ãã€ã¯ããµãŒãã¹ã®äŸåé¢ä¿ãããã³ã°: ãã€ã¯ããµãŒãã¹éã®äŸåé¢ä¿ãå¯èŠåããåã ã®ãµãŒãã¹ãžã®å€æŽãäžãã圱é¿ãçè§£ããã®ã«åœ¹ç«ã¡ãŸãã
ããã³ããšã³ã忣ãã¬ãŒã·ã³ã°ã®å®è£
ããã³ããšã³ã忣ãã¬ãŒã·ã³ã°ã®å®è£ ã«ã¯ããã¬ãŒã·ã³ã°ããã¯ãšã³ãã®éžæãããã³ããšã³ãã³ãŒãã®ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ãã³ã³ããã¹ãäŒæã®èšå®ãªã©ãããã€ãã®ã¹ããããå«ãŸããŸãã以äžã«ãéå§ããããã®å®è·µçãªã¬ã€ãã瀺ããŸãã
1. ãã¬ãŒã·ã³ã°ããã¯ãšã³ãã®éžæ
ãªãŒãã³ãœãŒã¹ãšåçšã®äž¡æ¹ã§ãåªãããã¬ãŒã·ã³ã°ããã¯ãšã³ããããã€ãå©çšå¯èœã§ãã人æ°ã®ããéžæè¢ã«ã¯ä»¥äžã®ãããªãã®ããããŸãã
- Jaeger: DapperãšOpenZipkinã«è§ŠçºããããCNCF忥ãããžã§ã¯ãã®ãªãŒãã³ãœãŒã¹åæ£ãã¬ãŒã·ã³ã°ã·ã¹ãã ã§ãã
- Zipkin: ããäžã€ã®äººæ°ã®ãããªãŒãã³ãœãŒã¹åæ£ãã¬ãŒã·ã³ã°ã·ã¹ãã ã§ãã
- Datadog: 忣ãã¬ãŒã·ã³ã°æ©èœãå«ãå æ¬çãªç£èŠããã³ã»ãã¥ãªãã£ãã©ãããã©ãŒã ã§ãã
- New Relic: å ç¢ãªåæ£ãã¬ãŒã·ã³ã°æ©èœãåããã¢ããªã±ãŒã·ã§ã³ããã©ãŒãã³ã¹ç£èŠïŒAPMïŒãã©ãããã©ãŒã ã§ãã
- Lightstep: å€§èŠæš¡ã§è€éãªã·ã¹ãã åãã«èšèšããããå°çšã®åæ£ãã¬ãŒã·ã³ã°ãã©ãããã©ãŒã ã§ãã
ãã¬ãŒã·ã³ã°ããã¯ãšã³ããéžæããéã«ã¯ãã¹ã±ãŒã©ããªãã£ãã³ã¹ãã䜿ãããããæ¢åã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãšã®çµ±åãªã©ã®èŠçŽ ãèæ ®ããŠãã ãããå€ãã®ã¯ã©ãŠããããã€ããŒããããŒãžããã¬ãŒã·ã³ã°ãµãŒãã¹ãæäŸããŠãããããã«ãããããã€ãšç®¡çãç°¡çŽ åãããŸãã
2. ããã³ããšã³ãã³ãŒãã®ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³
ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã«ã¯ãã¹ãã³ãçæãã³ã³ããã¹ããäŒæãããããã«ãããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ã«ã³ãŒãã远å ããããšãå«ãŸããŸããã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã®è©³çްã¯ã䜿çšããŠãããã¬ãŒã ã¯ãŒã¯ïŒäŸïŒReactãAngularãVue.jsïŒãéžæãããã¬ãŒã·ã³ã°ããã¯ãšã³ãã«ãã£ãŠç°ãªããŸãã
OpenTelemetryã®äœ¿çš
OpenTelemetryã¯ããã¬ãŒã¹ãã¡ããªã¯ã¹ããã°ãå«ããã¬ã¡ããªããŒã¿ãåéã»ãšã¯ã¹ããŒãããããã®æšæºåãããæ¹æ³ãæäŸãããªãŒãã³ãœãŒã¹ã®ãªãã¶ãŒãããªãã£ãã¬ãŒã ã¯ãŒã¯ã§ããããã¯ãã³ããŒã«äžç«ãªã¢ãããŒãã§ãããã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã³ãŒãã倿Žããããšãªããç°ãªããã¬ãŒã·ã³ã°ããã¯ãšã³ããåãæ¿ããããšãã§ããŸãã
以äžã¯ãOpenTelemetryã䜿çšããŠReactã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ãã«ã¡ã³ãããåºæ¬çãªäŸã§ãã
import { trace, context, propagation } from '@opentelemetry/api';
import { WebTracerProvider } from '@opentelemetry/sdk-trace-web';
import { SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base';
import { CollectorTraceExporter } from '@opentelemetry/exporter-collector';
import { registerInstrumentations } from '@opentelemetry/instrumentation';
import { XMLHttpRequestInstrumentation } from '@opentelemetry/instrumentation-xml-http-request';
import { FetchInstrumentation } from '@opentelemetry/instrumentation-fetch';
// Configure the tracer provider
const provider = new WebTracerProvider({
resource: {
attributes: {
'service.name': 'frontend-app',
},
},
});
// Configure the exporter to send traces to your tracing backend
const exporter = new CollectorTraceExporter({
url: 'http://localhost:4318/v1/traces', // Replace with your collector endpoint
});
// Add a span processor to the provider
provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
// Register instrumentations
registerInstrumentations({
instrumentations: [
new XMLHttpRequestInstrumentation(),
new FetchInstrumentation(),
],
});
// Initialize the provider
provider.register();
// Function to create a span
function createSpan(operationName, callback) {
const tracer = trace.getTracer('frontend-tracer');
const span = tracer.startSpan(operationName);
const ctx = trace.setSpan(context.active(), span);
return propagation.contextManager.with(ctx, () => {
try {
return callback();
} finally {
span.end();
}
});
}
// Example usage
const fetchData = async () => {
return createSpan('fetchData', async () => {
const response = await fetch('/api/data');
const data = await response.json();
return data;
});
};
fetchData().then(data => {
console.log('Data:', data);
});
ãã®äŸã¯ãReactã¢ããªã±ãŒã·ã§ã³ã§OpenTelemetryãèšå®ããåºæ¬çãªæé ã瀺ããŠããŸããããã«ã¯ä»¥äžãå«ãŸããŸãã
- ãµãŒãã¹åãæã€ãã¬ãŒãµãŒãããã€ããŒã®èšå®ã
- ãã¬ãŒã¹ãã³ã¬ã¯ã¿ãŒïŒãã®å Žåã¯ããŒã«ã«ã€ã³ã¹ã¿ã³ã¹ïŒã«éä¿¡ããããã®ãšã¯ã¹ããŒã¿ãŒã®èšå®ã
- ãããã¯ãŒã¯ãªã¯ãšã¹ãã«å¯ŸããŠèªåçã«ã¹ãã³ãçæããããã®XMLHttpRequestããã³Fetch APIã®ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã®ç»é²ã
- ç¹å®ã®æäœãæåã§ã€ã³ã¹ãã«ã¡ã³ãã§ããããã«ãã³ãŒããããã¯ãã¹ãã³ã§ã©ãããã
createSpan颿°ã
æåã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³
èªåã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã«å ããŠãèªåçã«è¿œè·¡ãããªãç¹å®ã®ã€ãã³ããæäœããã£ããã£ããããã«ãã³ãŒãã®äžéšãæåã§ã€ã³ã¹ãã«ã¡ã³ãããå¿ èŠãããå ŽåããããŸããããã«ã¯éåžžããã¬ãŒã·ã³ã°ããã¯ãšã³ããŸãã¯OpenTelemetryãæäŸãããã¬ãŒã·ã³ã°APIã䜿çšããŠã¹ãã³ãäœæããããšãå«ãŸããŸãã
äŸãã°ãè€éãªèšç®ãäžé£ã®ã¢ã¯ã·ã§ã³ãããªã¬ãŒãããŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ã«å¯ŸããŠã¹ãã³ãäœæãããå ŽåããããŸãã
3. ã³ã³ããã¹ãäŒæã®èšå®
ã³ã³ããã¹ãäŒæã¯ãã¹ãã³ããªã³ã¯ããŠå®å šãªãã¬ãŒã¹ã圢æããããã«äžå¯æ¬ ã§ããããã«ã¯ããµãŒãã¹éã§ãã¬ãŒã·ã³ã°æ å ±ïŒãã¬ãŒã¹IDãã¹ãã³IDïŒãæž¡ãããšãå«ãŸããŸããããã¯éåžžãHTTPããããŒã䜿çšããŠè¡ãããŸããOpenTelemetryã¯ãHTTPãªã¯ãšã¹ãããã³ã³ããã¹ããèªåçã«æ¿å ¥ããã³æœåºããããã®ãŠãŒãã£ãªãã£ãæäŸããŸãã
以äžã¯ãOpenTelemetryã䜿çšããŠHTTPãªã¯ãšã¹ãã«ã³ã³ããã¹ããæ¿å ¥ããæ¹æ³ã®äŸã§ãã
import { propagation, context } from '@opentelemetry/api';
const injectContext = (headers = {}) => {
propagation.inject(context.active(), headers, {
set: (carrier, key, value) => {
carrier[key] = value;
},
});
return headers;
};
// Example usage
const fetchWithTracing = async (url, options = {}) => {
const headers = injectContext(options.headers);
const response = await fetch(url, { ...options, headers });
return response;
};
fetchWithTracing('/api/data')
.then(response => response.json())
.then(data => console.log(data));
ããã¯ãšã³ãã§ã¯ãåä¿¡ããHTTPãªã¯ãšã¹ãããã³ã³ããã¹ããæœåºããä»ã®ãµãŒãã¹ãžã®åŸç¶ãªã¯ãšã¹ãã«äŒæãããå¿ èŠããããŸããããã«ãããè€æ°ã®ãµãŒãã¹ã«ãŸããã£ãŠãããã¬ãŒã¹å šäœããªã³ã¯ãããããšãä¿èšŒãããŸãã
4. ãã¬ãŒã¹ã®å¯èŠåãšåæ
ããã³ããšã³ãã³ãŒããã€ã³ã¹ãã«ã¡ã³ãããã³ã³ããã¹ãäŒæãèšå®ãããããã¬ãŒã¹ããŒã¿ã®åéãéå§ã§ããŸãããã¬ãŒã·ã³ã°ããã¯ãšã³ãã¯ããã¬ãŒã¹ãå¯èŠåããã³åæããããã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããŸããããã«ããã以äžã®ããšãå¯èœã«ãªããŸãã
- åã ã®ãªã¯ãšã¹ãã®å®å šãªãªã¯ãšã¹ããããŒã衚瀺ããã
- é ãæäœãããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããã
- ãµãŒãã¹éã®äŸåé¢ä¿ãåæããã
- åã ã®ã¹ãã³ã«ããªã«ããŠã³ããŠãã¡ã¿ããŒã¿ããã°ãã¿ã°ã衚瀺ããã
- ãã¬ãŒã¹ãæ¯èŒããŠãããã©ãŒãã³ã¹ã®ãªã°ã¬ãã·ã§ã³ãç¹å®ããã
ãã¬ãŒã¹ãå¯èŠåããã³åæããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãšåäœã«é¢ãã貎éãªæŽå¯ãåŸãããšãã§ããŸãããã®æ å ±ã¯ãã³ãŒãã®æé©åããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®åäžãæœåšçãªåé¡ãžã®ããã¢ã¯ãã£ããªå¯ŸåŠã«äœ¿çšã§ããŸãã
ããã³ããšã³ãç¹æã®èæ ®äºé
ããã³ããšã³ãã®åæ£ãã¬ãŒã·ã³ã°ã«ã¯ãããã¯ãšã³ãã®ãã¬ãŒã·ã³ã°ãšæ¯èŒããŠããã€ãã®ãŠããŒã¯ãªèæ ®äºé ããããŸãã以äžã«çæãã¹ãããã€ãã®éèŠãªãã€ã³ãã瀺ããŸãã
ã·ã³ã°ã«ããŒãžã¢ããªã±ãŒã·ã§ã³ (SPA)
SPAã¯ãã°ãã°ãã©ãŠã¶å ã§è€éãªçžäºäœçšã䌎ãããããŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ãéåææäœã远跡ããããšãéèŠã«ãªããŸãããããã®ã€ãã³ãããã£ããã£ãã察å¿ããããã¯ãšã³ããªã¯ãšã¹ãã«ãªã³ã¯ããããã«ã³ãŒããã€ã³ã¹ãã«ã¡ã³ãããŠããããšã確èªããŠãã ããã
ãã©ãŠã¶ã®ããã©ãŒãã³ã¹
ããã³ããšã³ãã«ãã¬ãŒã·ã³ã°ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã远å ãããšããã©ãŠã¶ã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸããå¹ççãªãã¬ãŒã·ã³ã°ã©ã€ãã©ãªã䜿çšããéå°ãªã¹ãã³äœæãé¿ããããšã§ãªãŒããŒããããæå°éã«æããŠãã ãããåéãããããŒã¿éãæžããããã«ããã¬ãŒã¹ã®ãµã³ããªã³ã°ãæ€èšããŠãã ããã
ãŠãŒã¶ãŒã®ãã©ã€ãã·ãŒ
ãã¬ãŒã¹ããŒã¿ãåéããéã¯ããŠãŒã¶ãŒã®ãã©ã€ãã·ãŒã«æ³šæããŠãã ãããå人ãç¹å®ã§ããæ å ±ïŒPIIïŒãªã©ã®æ©å¯æ å ±ãåéããªãããã«ããŠãã ããããŠãŒã¶ãŒã®ãã©ã€ãã·ãŒãä¿è·ããããã«ãããŒã¿ãã¹ãã³ã°ãå¿ååæè¡ãå®è£ ããŠãã ããã
ãšã©ãŒãã³ããªã³ã°
ããã³ããšã³ãã§çºçãããšã©ãŒããã£ããã£ãã察å¿ããã¹ãã³ã«é¢é£ä»ããŸããããã«ãããããã³ããšã³ãã§çºçããããã¯ãšã³ãã«äŒæãããšã©ãŒã®æ ¹æ¬åå ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
å®è·µçãªäŸãšãŠãŒã¹ã±ãŒã¹
ããã³ããšã³ã忣ãã¬ãŒã·ã³ã°ãçŸå®äžçã®åé¡ã解決ããããã«ã©ã®ããã«äœ¿çšã§ããããããã€ãã®å®è·µçãªäŸãæ¢ã£ãŠã¿ãŸãããã
äŸ1ïŒé ãããŒãžèªã¿èŸŒã¿æé
ãŠãŒã¶ãŒãããŠã§ããµã€ãã®èªã¿èŸŒã¿ãé ããšããå ±åããããŸããããã³ããšã³ã忣ãã¬ãŒã·ã³ã°ã䜿çšãããšãèªã¿èŸŒã¿æéãé ããªãåå ãšãªã£ãŠããç¹å®ã®æäœãç¹å®ã§ããŸããããã«ã¯ãé ãAPIåŒã³åºããéå¹çãªJavaScriptã³ãŒããããŠã³ããŒãã«æéãããã£ãŠãã倧ããªç»åãªã©ãå«ãŸããå¯èœæ§ããããŸãããããã®æäœãæé©åããããšã§ãããŒãžã®èªã¿èŸŒã¿æéãå€§å¹ ã«æ¹åãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããããšãã§ããŸãã
äŸ2ïŒãšã©ãŒã®äŒæ
ãŠãŒã¶ãŒããã©ãŒã ãéä¿¡ããããšãããšãã«ãšã©ãŒãå ±åããŸãããããã³ããšã³ã忣ãã¬ãŒã·ã³ã°ã䜿çšãããšããã©ãŠã¶ããããã¯ãšã³ããµãŒãã¹ãžã®ãªã¯ãšã¹ãã远跡ã§ããŸããããã«ããããšã©ãŒãçºçããæ£ç¢ºãªæç¹ãç¹å®ãããã®ç¶æ³ãçè§£ããããšãã§ããŸãããããŠããã®æ å ±ã䜿çšããŠãšã©ãŒãä¿®æ£ããåçºãé²ãããšãã§ããŸãã
äŸ3ïŒãã€ã¯ããµãŒãã¹ã®äŸåé¢ä¿ã®åé¡
ãããã€ã¯ããµãŒãã¹ã®å€æŽããããã³ããšã³ãã§äºæããªãåé¡ãåŒãèµ·ãããŸãããããã³ããšã³ã忣ãã¬ãŒã·ã³ã°ã䜿çšãããšããã€ã¯ããµãŒãã¹éã®äŸåé¢ä¿ãå¯èŠåãã倿Žã®åœ±é¿ãçè§£ããããšãã§ããŸããããã«ãããåé¡ã®æ ¹æ¬åå ãè¿ éã«ç¹å®ããä¿®æ£ãå®è£ ããããšãã§ããŸãã
ããã³ããšã³ã忣ãã¬ãŒã·ã³ã°ã®ãã¹ããã©ã¯ãã£ã¹
ããã³ããšã³ã忣ãã¬ãŒã·ã³ã°ã®å©ç¹ãæå€§éã«æŽ»çšããããã«ã以äžã®ãã¹ããã©ã¯ãã£ã¹ã«åŸã£ãŠãã ããã
- æšæºåããããã¬ãŒã·ã³ã°ãã¬ãŒã ã¯ãŒã¯ã䜿çšãã: OpenTelemetryã®ãããªãã¬ãŒã ã¯ãŒã¯ãéžæããŠãäžè²«æ§ãšãã³ããŒäžç«æ§ã確ä¿ããŸãã
- ã³ãŒããå æ¬çã«ã€ã³ã¹ãã«ã¡ã³ããã: é¢é£ãããã¹ãŠã®ã€ãã³ããšæäœããã£ããã£ããŠããªã¯ãšã¹ããããŒã®å šäœåãæäŸããŸãã
- ã³ã³ããã¹ãäŒæãæ£ããèšå®ãã: ãã¬ãŒã·ã³ã°æ å ±ããµãŒãã¹éã§é©åã«äŒæãããããã«ããŸãã
- 宿çã«ãã¬ãŒã¹ãå¯èŠåã»åæãã: ãã¬ãŒã·ã³ã°ããã¯ãšã³ãã䜿çšããŠããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããæœåšçãªåé¡ã«ããã¢ã¯ãã£ãã«å¯ŸåŠããŸãã
- ãã¬ãŒã·ã³ã°ã€ã³ãã©ã¹ãã©ã¯ãã£ãç£èŠãã: ãã¬ãŒã·ã³ã°ããã¯ãšã³ããæé©ã«åäœããŠãããã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããŠããªãããšã確èªããŸãã
- ããŒã ãæè²ãã: éçºè ãšéçšããŒã ã«ãããã³ããšã³ã忣ãã¬ãŒã·ã³ã°ã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãšæé©åãè¡ãæ¹æ³ããã¬ãŒãã³ã°ããŸãã
ããã³ããšã³ããªãã¶ãŒãããªãã£ã®æªæ¥
ããã³ããšã³ããªãã¶ãŒãããªãã£ã¯é²åãç¶ããåéã§ãããä»åŸæ°å¹Žéã§ãããªã鲿©ãæåŸ ãããŸããå°æ¥ã®å¯èœæ§ã®ãããã¬ã³ãã«ã¯ä»¥äžã®ãããªãã®ããããŸãã
- ãã©ãŠã¶ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã®æ¹å: ããæŽç·Žããããã©ãŠã¶APIãããŒã«ã«ãããããã³ããšã³ãã³ãŒãã®ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ãšãã¬ã¡ããªããŒã¿ã®åéã容æã«ãªããŸãã
- AIã«ãããã¬ãŒã¹åæ: 人工ç¥èœã𿩿¢°åŠç¿ã䜿çšããŠããã¬ãŒã¹ããŒã¿ãèªåçã«åæããç°åžžãããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããŸãã
- ãªã¢ã«ãŠãŒã¶ãŒã¢ãã¿ãªã³ã° (RUM) ãšã®çµ±å: ããã³ããšã³ã忣ãã¬ãŒã·ã³ã°ã¯ãRUMããŒã«ãšç·å¯ã«çµ±åããããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãšã¢ããªã±ãŒã·ã§ã³ããã©ãŒãã³ã¹ã®å šäœåãæäŸããŸãã
- ãšããžã³ã³ãã¥ãŒãã£ã³ã°ã®ãªãã¶ãŒãããªãã£: ããå€ãã®ã¢ããªã±ãŒã·ã§ã³ããšããžã«ç§»è¡ããã«ã€ããŠããšããžããã€ã¹ããããã¯ãŒã¯ã«ããªãã¶ãŒãããªãã£ãæ¡åŒµããå¿ èŠããããŸãã
çµè«
ããã³ããšã³ã忣ãã¬ãŒã·ã³ã°ã¯ããã€ã¯ããµãŒãã¹ã®ãªã¯ãšã¹ããããŒãå¯èŠåããããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããã¢ããªã±ãŒã·ã§ã³ã®ä¿¡é Œæ§ãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããããã®åŒ·åãªããŒã«ã§ããããã³ããšã³ããã¬ãŒã·ã³ã°ãå®è£ ããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®åäœã«é¢ãã貎éãªæŽå¯ãåŸãŠãæœåšçãªåé¡ã«ããã¢ã¯ãã£ãã«å¯ŸåŠããããšãã§ããŸããããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ã®è€éããå¢ãç¶ããã«ã€ããŠãæé©ãªããã©ãŒãã³ã¹ãšãŠãŒã¶ãŒæºè¶³åºŠã確ä¿ããããã«ãããã³ããšã³ããªãã¶ãŒãããªãã£ã¯ãŸããŸãéèŠã«ãªãã§ããããããã³ããšã³ã忣ãã¬ãŒã·ã³ã°ãåãå ¥ããã¢ããªã±ãŒã·ã§ã³ã®å éšåäœã«å¯Ÿããæ°ããªã¬ãã«ã®å¯èŠæ§ãè§£ãæŸã¡ãŸãããã