New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@platformatic/telemetry

Package Overview
Dependencies
Maintainers
6
Versions
265
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@platformatic/telemetry - npm Package Compare versions

Comparing version 0.34.0 to 0.34.1

32

lib/telemetry.js
'use strict'
const fp = require('fastify-plugin')
const { SpanStatusCode } = require('@opentelemetry/api')
const { SpanStatusCode, SpanKind } = require('@opentelemetry/api')
const { ConsoleSpanExporter, BatchSpanProcessor, SimpleSpanProcessor, InMemorySpanExporter } = require('@opentelemetry/sdk-trace-base')

@@ -11,2 +11,3 @@ const { SemanticResourceAttributes } = require('@opentelemetry/semantic-conventions')

const { fastifyTextMapGetter, fastifyTextMapSetter } = require('./fastify-text-map')
const fastUri = require('fast-uri')

@@ -38,5 +39,10 @@ // Platformatic telemetry plugin.

request (request) {
const { hostname, method, url, protocol } = request
const urlData = fastUri.parse(`${protocol}://${hostname})`)
return {
'req.method': request.raw.method,
'req.url': request.raw.url
'server.address': hostname,
'server.port': urlData.port,
'http.request.method': method,
'url.path': url,
'url.scheme': protocol
}

@@ -46,3 +52,3 @@ },

return {
'reply.statusCode': reply.statusCode
'http.response.status_code': reply.statusCode
}

@@ -66,3 +72,3 @@ },

}
app.log.info(`Setting up telemetry for service: ${serviceName} version: ${version} and exporter of type ${exporter.type}`)
app.log.info(`Setting up telemetry for service: ${serviceName}${version ? ' version: ' + version : ''} with exporter of type ${exporter.type}`)
const provider = new PlatformaticTracerProvider({

@@ -126,2 +132,3 @@ resource: new Resource({

)
span.kind = SpanKind.SERVER
// Next 2 lines are needed by W3CTraceContextPropagator

@@ -185,4 +192,15 @@ context = context.setSpan(span)

const span = tracer.startSpan(`${method} ${url}`, {}, context)
span.kind = SpanKind.CLIENT
const urlObj = fastUri.parse(url)
/* istanbul ignore next */
const attributes = url ? { 'server.url': url } : {}
const attributes = url
? {
'server.address': urlObj.host,
'server.port': urlObj.port,
'http.request.method': method,
'url.full': url,
'url.path': urlObj.path
}
: {}
span.setAttributes(attributes)

@@ -209,3 +227,3 @@

span.setAttributes({
'response.statusCode': response.statusCode
'http.response.status_code': response.statusCode
})

@@ -212,0 +230,0 @@ span.setStatus(spanStatus)

{
"name": "@platformatic/telemetry",
"version": "0.34.0",
"version": "0.34.1",
"description": "OpenTelemetry integration for Platformatic",

@@ -26,2 +26,3 @@ "main": "index.js",

"@opentelemetry/semantic-conventions": "^1.15.0",
"fast-uri": "^2.2.0",
"fastify-plugin": "^4.5.0"

@@ -28,0 +29,0 @@ },

@@ -5,3 +5,3 @@ 'use strict'

const fastify = require('fastify')
const { SpanStatusCode } = require('@opentelemetry/api')
const { SpanStatusCode, SpanKind } = require('@opentelemetry/api')
const telemetryPlugin = require('../lib/telemetry')

@@ -33,3 +33,2 @@ const { PlatformaticContext } = require('../lib/platformatic-context')

serviceName: 'test-service',
version: '1.0.0',
exporter: {

@@ -131,12 +130,17 @@ type: 'memory'

equal(spanServer.name, 'GET /test')
equal(spanServer.kind, SpanKind.SERVER)
equal(spanServer.status.code, SpanStatusCode.OK)
equal(spanServer.attributes['req.method'], 'GET')
equal(spanServer.attributes['req.url'], '/test')
equal(spanServer.attributes['reply.statusCode'], 200)
equal(spanServer.attributes['http.request.method'], 'GET')
equal(spanServer.attributes['url.path'], '/test')
equal(spanServer.attributes['http.response.status_code'], 200)
const spanClient = finishedSpans[1]
equal(spanClient.name, 'GET http://localhost:3000/test')
equal(spanClient.kind, SpanKind.CLIENT)
equal(spanClient.status.code, SpanStatusCode.OK)
equal(spanClient.attributes['server.url'], 'http://localhost:3000/test')
equal(spanClient.attributes['response.statusCode'], 200)
equal(spanClient.attributes['url.full'], 'http://localhost:3000/test')
equal(spanClient.attributes['http.response.status_code'], 200)
equal(spanClient.attributes['server.port'], 3000)
equal(spanClient.attributes['server.address'], 'localhost')
equal(spanClient.attributes['url.path'], '/test')

@@ -181,12 +185,14 @@ // The traceparent header is added to the request and propagated to the server

equal(spanServer.name, 'GET')
equal(spanServer.kind, SpanKind.SERVER)
equal(spanServer.status.code, SpanStatusCode.ERROR)
equal(spanServer.attributes['req.method'], 'GET')
equal(spanServer.attributes['req.url'], '/wrong')
equal(spanServer.attributes['reply.statusCode'], 404)
equal(spanServer.attributes['http.request.method'], 'GET')
equal(spanServer.attributes['url.path'], '/wrong')
equal(spanServer.attributes['http.response.status_code'], 404)
const spanClient = finishedSpans[1]
equal(spanClient.name, 'GET http://localhost:3000/test')
equal(spanClient.kind, SpanKind.CLIENT)
equal(spanClient.status.code, SpanStatusCode.ERROR)
equal(spanClient.attributes['server.url'], 'http://localhost:3000/test')
equal(spanClient.attributes['response.statusCode'], 404)
equal(spanClient.attributes['url.full'], 'http://localhost:3000/test')
equal(spanClient.attributes['http.response.status_code'], 404)
})

@@ -226,3 +232,3 @@

equal(spanClient.status.code, SpanStatusCode.ERROR)
equal(spanClient.attributes['server.url'], 'http://localhost:3000/test')
equal(spanClient.attributes['url.full'], 'http://localhost:3000/test')
equal(spanClient.attributes['error.name'], 'Error')

@@ -229,0 +235,0 @@ equal(spanClient.attributes['error.message'], 'KABOOM!!!')

@@ -5,3 +5,3 @@ 'use strict'

const fastify = require('fastify')
const { SpanStatusCode } = require('@opentelemetry/api')
const { SpanStatusCode, SpanKind } = require('@opentelemetry/api')
const telemetryPlugin = require('../lib/telemetry')

@@ -50,7 +50,10 @@

const span = finishedSpans[0]
equal(span.kind, SpanKind.SERVER)
equal(span.name, 'GET /test')
equal(span.status.code, SpanStatusCode.OK)
equal(span.attributes['req.method'], 'GET')
equal(span.attributes['req.url'], '/test')
equal(span.attributes['reply.statusCode'], 200)
equal(span.attributes['http.request.method'], 'GET')
equal(span.attributes['url.path'], '/test')
equal(span.attributes['http.response.status_code'], 200)
equal(span.attributes['url.scheme'], 'http')
equal(span.attributes['server.address'], 'test')
const resource = span.resource

@@ -82,5 +85,5 @@ same(resource.attributes['service.name'], 'test-service')

equal(span.status.code, SpanStatusCode.OK)
equal(span.attributes['req.method'], 'GET')
equal(span.attributes['req.url'], '/test')
equal(span.attributes['reply.statusCode'], 200)
equal(span.attributes['http.request.method'], 'GET')
equal(span.attributes['url.path'], '/test')
equal(span.attributes['http.response.status_code'], 200)
// This is the attribute we added

@@ -133,5 +136,5 @@ equal(span.attributes.foo, 'bar')

equal(span.status.code, SpanStatusCode.ERROR)
equal(span.attributes['req.method'], 'GET')
equal(span.attributes['req.url'], '/test')
equal(span.attributes['reply.statusCode'], 500)
equal(span.attributes['http.request.method'], 'GET')
equal(span.attributes['url.path'], '/test')
equal(span.attributes['http.response.status_code'], 500)
equal(span.attributes['error.message'], 'booooom!!!')

@@ -138,0 +141,0 @@ const resource = span.resource

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc