diff --git a/e2e-tests/test.mjs b/e2e-tests/test.mjs index 20476c580c6..1ee598cae99 100644 --- a/e2e-tests/test.mjs +++ b/e2e-tests/test.mjs @@ -28,6 +28,7 @@ import { metrics, } from '@opentelemetry/api'; import { logs } from '@opentelemetry/api-logs'; +import { resourceFromDetectedResource } from '@opentelemetry/resources'; // Enable diagnostic logging (optional) diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.INFO); @@ -56,11 +57,24 @@ const logExporter = new OTLPLogExporter({ }); const logRecordProcessors = [new SimpleLogRecordProcessor(logExporter)]; +const resource = resourceFromDetectedResource({ + entities: [ + { + type: 'service', + identifier: { 'service.name': 'example-service' }, + attributes: { 'service.version': '1.0.0' }, + schemaUrl: 'https://opentelemetry.io/schemas/1.0.0/service', + }, + ], +}); + // Set up OpenTelemetry SDK const sdk = new NodeSDK({ spanProcessors, metricReader, logRecordProcessors, + resource, + autoDetectResources: false, // Disable automatic resource detection }); async function main() { diff --git a/e2e-tests/verify.mjs b/e2e-tests/verify.mjs index 16bafb7d913..9b2f42c5d95 100755 --- a/e2e-tests/verify.mjs +++ b/e2e-tests/verify.mjs @@ -29,16 +29,19 @@ for (const line of lines) { if (parsed.resourceSpans) { console.log('found span'); verifySpan(parsed.resourceSpans[0].scopeSpans[0].spans[0]); + verifyResource(parsed.resourceSpans[0].resource); verifiedSpan = true; } if (parsed.resourceMetrics) { console.log('found metric'); verifyMetric(parsed.resourceMetrics[0].scopeMetrics[0].metrics[0]); + verifyResource(parsed.resourceMetrics[0].resource); verifiedMetric = true; } if (parsed.resourceLogs) { console.log('found log'); verifyLog(parsed.resourceLogs[0].scopeLogs[0].logRecords[0]); + verifyResource(parsed.resourceLogs[0].resource); verifiedLog = true; } } @@ -56,6 +59,29 @@ if (!verifiedLog) { process.exit(1); } +function verifyResource(resource) { + if (!resource || !resource.attributes) { + console.error('Resource attributes are missing'); + process.exit(1); + } + const name = resource.attributes.find(attr => attr.key === 'service.name'); + if (!name || name.value.stringValue !== 'example-service') { + console.error( + `Expected service.name to be 'example-service', but got '${name?.value.stringValue}'` + ); + process.exit(1); + } + const version = resource.attributes.find( + attr => attr.key === 'service.version' + ); + if (!version || version.value.stringValue !== '1.0.0') { + console.error( + `Expected service.version to be '1.0.0', but got '${version?.value.stringValue}'` + ); + process.exit(1); + } +} + function verifySpan(span) { const expectedName = 'example-span'; if (span.name !== expectedName) { diff --git a/examples/https/server-cert.pem b/examples/https/server-cert.pem index 5e957ab5b25..5c0249fb313 100644 --- a/examples/https/server-cert.pem +++ b/examples/https/server-cert.pem @@ -1,22 +1,22 @@ -----BEGIN CERTIFICATE----- -MIIDozCCAougAwIBAgIUNmVva8tI/hqzZAB7FZzPmNr/Q0owDQYJKoZIhvcNAQEL +MIIDozCCAougAwIBAgIUHNXizGTXdVq7RZXVstG5RnrsuTUwDQYJKoZIhvcNAQEL BQAwYTELMAkGA1UEBhMCQ0wxCzAJBgNVBAgMAlJNMRowGAYDVQQHDBFPcGVuVGVs ZW1ldHJ5VGVzdDENMAsGA1UECgwEUm9vdDENMAsGA1UECwwEVGVzdDELMAkGA1UE -AwwCY2EwHhcNMjQwNjA4MTkxODUyWhcNMzQwNjA2MTkxODUyWjBhMQswCQYDVQQG +AwwCY2EwHhcNMjUwNjExMDMzMDA4WhcNMzUwNjA5MDMzMDA4WjBhMQswCQYDVQQG EwJDTDELMAkGA1UECAwCUk0xGjAYBgNVBAcMEU9wZW5UZWxlbWV0cnlUZXN0MQ0w CwYDVQQKDARSb290MQ0wCwYDVQQLDARUZXN0MQswCQYDVQQDDAJjYTCCASIwDQYJ -KoZIhvcNAQEBBQADggEPADCCAQoCggEBAM80Psz6Kc4/x1Qx4OmYuacrCDL4JNY+ -SWzEm1kb25/E1+TrxYC8XluJtXwi9JRC7ovR8UIbZNVgWwPHlSXrTQsVe2sISr4K -oRg87vmcRYzsOval+ZViFelUo9t5sYeiX0xBuMP1ENfEL+gtu2QrkmgDhy/XdRpm -qpcrtJxXaIXedy82y7Av5da7jJyJ+9oaTq0Am0qyZjpzTs3jKEh1roWoc3pd6T4d -asNHLeKrsq3bTasEH/Lo9k4t+2n1j5C+L5gWhPcCv8yzhGsrSiqxn+P9m/USXY/w -HH9AyV7Dk4Jh8BjUOlYaqOLIEow7hwdxVBk1BO6Jmpxv8KI3qQjtLWsCAwEAAaNT -MFEwHQYDVR0OBBYEFOueTx80MsHFiBvP0RO99CpVdj0ZMB8GA1UdIwQYMBaAFOue -Tx80MsHFiBvP0RO99CpVdj0ZMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL -BQADggEBAJYqqU3wCDX+YZDZ4zd8k725MSfKk1omCxDzDzjuNAjqD/vuSE0YfdFB -bTWMiBGsCqa6FgWwyT2oMPnJKShScZReFEZcM2s+/odfwUTwF4lD/UvZf6PdDhJ5 -kxqhoej2ZT8NY+m+rddmg5MaurIcIfOhOxRjarmhs2lrg5qmGKznauettsmA1ZpR -d2ZZA10WstCKN7jHOUqUmSB/2oC/NZno09yXqgbNwIEwBgsUDNaYkGzIzsKD+mOy -NTxLo/PJ5venVgboomDkWJqOOm+HtqfD64rczWyTS/ZdQhuFlk+aCYAwOhYZZH9Z -IEkKcW8xN5+q8Bi9nsst5F1cuw84LD4= +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAKvmpOQ/3/wqwe4Ltp+2QXd6KWAIoeku +wvHO0VwtE40/22nXY5NMt+zPVBTjApe4d4Ht+QiDECHr6uhhCMooJCfTNtkbrTI2 +ESQWzLq6TuUAWxySurgVUXd6k0PzxMspgv7YAOrdVzkaLT7z+QlnRe7yWaJU80kW +hGQA048xlI/BoXIxe1FG5YOE5mOY+VCLDFS83qphV1wcQZH4KtMdgla7tlx1QObJ +NbQEgi3kUL130idpkGeWOVIJz9IujRS1cuxOOrGWrl9Y58uhIv4Fm0jrV69TexOB +XtPYrGjX3AbPUvpJuK/5JUmg9B3/R/GElrR4e/4OObA2Oyt0NTmJKQMCAwEAAaNT +MFEwHQYDVR0OBBYEFOyZ2iR0gyD2vnoaC4u3Uv7snlpcMB8GA1UdIwQYMBaAFOyZ +2iR0gyD2vnoaC4u3Uv7snlpcMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL +BQADggEBAAg8Y5xKxlC2YS/2u97RMhcN/9OjzRWChApB5QGsP3vzlwwq1romyhGr +8o5Ud77dB5msReWPyNPqRsA4yiqPjeTJKvpsZGEdkMrAHrzhMb5dSlMb0h5EHnvO +81Kq0IEBcZ2FsCpNzhk8VaJCpv/KCUjBAnoqfOkwRJ2lBgzGV61pJZvdmM+TXBOc +nWWIWN5AndZp8KXHZl6AqoLi0hayKGkQlk+Olij2+3N7iZXf6ALBHhd94LvW5NqN +8HVrc6pph2DgRo5e0ng04k3Gf5fwxPJ8L8KhU0LBOfFbEN3MALECycBEiFI5JE0Y +rUY46oF/Vcsyw1okuVTm5UcBxlOj+ho= -----END CERTIFICATE----- diff --git a/examples/https/server-key.pem b/examples/https/server-key.pem index 81c27246449..2a171926302 100644 --- a/examples/https/server-key.pem +++ b/examples/https/server-key.pem @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDPND7M+inOP8dU -MeDpmLmnKwgy+CTWPklsxJtZG9ufxNfk68WAvF5bibV8IvSUQu6L0fFCG2TVYFsD -x5Ul600LFXtrCEq+CqEYPO75nEWM7Dr2pfmVYhXpVKPbebGHol9MQbjD9RDXxC/o -LbtkK5JoA4cv13UaZqqXK7ScV2iF3ncvNsuwL+XWu4ycifvaGk6tAJtKsmY6c07N -4yhIda6FqHN6Xek+HWrDRy3iq7Kt202rBB/y6PZOLftp9Y+Qvi+YFoT3Ar/Ms4Rr -K0oqsZ/j/Zv1El2P8Bx/QMlew5OCYfAY1DpWGqjiyBKMO4cHcVQZNQTuiZqcb/Ci -N6kI7S1rAgMBAAECggEAA4u31WckhwCFZzXxTN4Ns0QjwEeJzdbEB+X3aJd28y15 -qlO0jgbrMHLTVbv9ZnocvezKTaDNYW9kL1TfgwYbS+jCs2qxaL4i0pjcWA4qDIbQ -XX8qnblPea42nZ9f/9ux+MqZIFVVw/N6BGWf8s9iEoCY9CMiQGDoY2zeitxeEAhe -KGZHozaTUVAClrwMqKYlablWjX8zcoi6bKffUwz/MwecI2iVW72y9/xIGTlwhdZW -8kDlkBOea3QV5yafcJQ1VsHrvUX3rf4C5uknCenwKbC3Au4+kBdQjv+bUk6aMR38 -OdnMCaUcnuT/UzbbtOSgJ+sVcGW9Jqo0DfS5CNPhuQKBgQD2EtOhjkUErc8KUhPW -Pt8FNBAuoKsk4mRHpFsY2OjGYA50oiCtiphqfTzkQLbNhVtq83AHNUNWUKBjnMUd -nAOIIvhpiEI7O+RuOafBtcFBIrUo2Ey5dwfvLJrpb7pEnYj8DNFVPQ/aBxP+mD4b -RrHRY8DZdVHU9TDMDK7ObpKScwKBgQDXkASnc7O/D0iFxev004sqdTrGo3cBCJUH -h/c68BrUvPw5u6fFulq5Wt6OOaFoWQmUSVyrhZD3vfrZ1Jocid3wn9uuu9vOazcz -M3EOF1rz5bgjwb/vk6CyGh1MfmeVCRnuQ3mBIXQ0xwS4QY71Vvw3099fhbtbMHez -5gyQv1ojKQKBgHkXBqGHmxsUVL/lZ/GT+rdayWPImK+L4IEItfNiOhn0huiKJ75+ -Z0Zv3pkL52j3aOcWaFiDs2E0R9j8+lr5vRsu6kM0VDNF48ECCjVetXzSEYfJ+OeD -VZoyvwCEhIrjYtd1j0V8yOInfYVZcaaGgVZi2jGoc95x0dN3okXfT61VAoGAVrCA -bqdFPizzSXkTL15ztRt4C7JphWziIik37+fnom5uMPmauxX6rlgw8JmUo9ZK1+u4 -7PHGHxuz6i5p29hF/SMMwfSirRzJEjo52STjWvqjVx3wBnUkRvvhlIWxOmpylzNj -hd7iUOdIqqES0O+udvUp+8xYUI/pU9vMadnKciECgYB3cJ+7EPNgJgdpQ9Pslex8 -6iHdQH9DIyIb/KqQVe7em5NZXwANCAOQ6KqzhszM/eH7NoSeN7C9Z9uHHIHDfz4m -QO896l7rM1k1R/USaUK4By/O/t/V/aIGjOnPsXxEGrEPDXXBtzUAEs5yAa+Ne1m7 -BiP9MuDgBTVkV1iJx37eqg== +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCr5qTkP9/8KsHu +C7aftkF3eilgCKHpLsLxztFcLRONP9tp12OTTLfsz1QU4wKXuHeB7fkIgxAh6+ro +YQjKKCQn0zbZG60yNhEkFsy6uk7lAFsckrq4FVF3epND88TLKYL+2ADq3Vc5Gi0+ +8/kJZ0Xu8lmiVPNJFoRkANOPMZSPwaFyMXtRRuWDhOZjmPlQiwxUvN6qYVdcHEGR ++CrTHYJWu7ZcdUDmyTW0BIIt5FC9d9InaZBnljlSCc/SLo0UtXLsTjqxlq5fWOfL +oSL+BZtI61evU3sTgV7T2Kxo19wGz1L6Sbiv+SVJoPQd/0fxhJa0eHv+DjmwNjsr +dDU5iSkDAgMBAAECggEAE1op4hBW1PqzTms/KgfIovy7v7X5FFlRVQulgi0I8HPp +7aZz7VdLtXs5yggseIwp2BTEXnLy0/7NOVADP075kwoyOIrnGqn/kAKJFdR3oUxC +9ZqHLsYnn73K6nF9DComNy52G/rDIQiTY2zv8mEP/HCIKsBJi0bfrKpzJsG8KdrB +VXc1ORst/clwfsMzqL3iLkcnv2ZYfLTQtQfyrTiYbogrkMKCWmQ4uJ+tC10Par5j +mNq35f4ruXyQZb6Vnb9ZmpyhrS2oEdzr7NqZFdd97WA2s5Hmtyt+S0QEafPVjKRE +3cjCnB/yGQF9Dv4gHRS3FMwFCqehjdImNWrwfKEfUQKBgQDd3plNXNxRuMVrYM/e +4k/9qjOGXHktrnFs6BDmfLatcVfNO4s9+/WUb6WxyhiH849EbmSXkGVMXpKpxQd4 +74G45nH2HrLR8dghnMEuAeMri6DNJrrvi18JnK35mM0ve1/1Xqzk2KyfD5/aLz19 +eFmTH9WNPzuPriYa9SlHHeVbbQKBgQDGWD4Ui4u11OZDR39j/eUu3C1lH4wl9sPV +XOvJrNMIAF0+zLwaM/MYzmJdXYv7l8/EgIVCGPnEFscYpbgjMVAQAVdvU/i0rki1 +voFffeJSs7WvY91gH1b0CRPPIIgoibTY/cA0nfV+oSPvg+qOnM79a9zz7TmjyA8D +tJ8/u2bgLwKBgQDVTs3UsxKe/yXOtqUjhDGjj5857m4SnUQvkG2vKvf2iKIBjt2w +Gi1hKHYFGGe9TUzQXdIYZZr+cW5QCj3E53+wZN3r4lfJwNoqdqrDsMzXcMaIdlQD +OduFQj2BWobqv5LiNMPEwQw1YLAu9HwJxUtZR6HoyoJZAPVhtZKZ7QQ1gQKBgAKs +5gl46GWHfaOir0E2B4VeSu52QnmwnmueWT/bKO2Os7NJJ7BiywCmqAUCYgT+wzqv +URzXIWdXt0/JzHYNEDtnCTrjMxOc1jY9X5leJVNgQS8gdbf6ND4OcUn18mA5m0ri +AVm0V79hhQ6SBPPvgYtBjTVtGb3v0OQH564AZR7ZAoGAKojS2OgQqQ4+x3+J9Z8B +Pc6hvvYe0dTn5rp+t+fPTAXIus6AjZ7a8TtlQBebtYTI0HUambUhsvTfSAsKurNt +9tasedlJZZAVrEgtOONoxgx1ARrBInnMY75Acmzz74tiDzlub36Oo8Xit+m52UEM +LfGbaogkR6/j654iSC7t50k= -----END PRIVATE KEY----- diff --git a/experimental/packages/opentelemetry-instrumentation-http/test/fixtures/server-cert.pem b/experimental/packages/opentelemetry-instrumentation-http/test/fixtures/server-cert.pem index 5e957ab5b25..5c0249fb313 100644 --- a/experimental/packages/opentelemetry-instrumentation-http/test/fixtures/server-cert.pem +++ b/experimental/packages/opentelemetry-instrumentation-http/test/fixtures/server-cert.pem @@ -1,22 +1,22 @@ -----BEGIN CERTIFICATE----- -MIIDozCCAougAwIBAgIUNmVva8tI/hqzZAB7FZzPmNr/Q0owDQYJKoZIhvcNAQEL +MIIDozCCAougAwIBAgIUHNXizGTXdVq7RZXVstG5RnrsuTUwDQYJKoZIhvcNAQEL BQAwYTELMAkGA1UEBhMCQ0wxCzAJBgNVBAgMAlJNMRowGAYDVQQHDBFPcGVuVGVs ZW1ldHJ5VGVzdDENMAsGA1UECgwEUm9vdDENMAsGA1UECwwEVGVzdDELMAkGA1UE -AwwCY2EwHhcNMjQwNjA4MTkxODUyWhcNMzQwNjA2MTkxODUyWjBhMQswCQYDVQQG +AwwCY2EwHhcNMjUwNjExMDMzMDA4WhcNMzUwNjA5MDMzMDA4WjBhMQswCQYDVQQG EwJDTDELMAkGA1UECAwCUk0xGjAYBgNVBAcMEU9wZW5UZWxlbWV0cnlUZXN0MQ0w CwYDVQQKDARSb290MQ0wCwYDVQQLDARUZXN0MQswCQYDVQQDDAJjYTCCASIwDQYJ -KoZIhvcNAQEBBQADggEPADCCAQoCggEBAM80Psz6Kc4/x1Qx4OmYuacrCDL4JNY+ -SWzEm1kb25/E1+TrxYC8XluJtXwi9JRC7ovR8UIbZNVgWwPHlSXrTQsVe2sISr4K -oRg87vmcRYzsOval+ZViFelUo9t5sYeiX0xBuMP1ENfEL+gtu2QrkmgDhy/XdRpm -qpcrtJxXaIXedy82y7Av5da7jJyJ+9oaTq0Am0qyZjpzTs3jKEh1roWoc3pd6T4d -asNHLeKrsq3bTasEH/Lo9k4t+2n1j5C+L5gWhPcCv8yzhGsrSiqxn+P9m/USXY/w -HH9AyV7Dk4Jh8BjUOlYaqOLIEow7hwdxVBk1BO6Jmpxv8KI3qQjtLWsCAwEAAaNT -MFEwHQYDVR0OBBYEFOueTx80MsHFiBvP0RO99CpVdj0ZMB8GA1UdIwQYMBaAFOue -Tx80MsHFiBvP0RO99CpVdj0ZMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL -BQADggEBAJYqqU3wCDX+YZDZ4zd8k725MSfKk1omCxDzDzjuNAjqD/vuSE0YfdFB -bTWMiBGsCqa6FgWwyT2oMPnJKShScZReFEZcM2s+/odfwUTwF4lD/UvZf6PdDhJ5 -kxqhoej2ZT8NY+m+rddmg5MaurIcIfOhOxRjarmhs2lrg5qmGKznauettsmA1ZpR -d2ZZA10WstCKN7jHOUqUmSB/2oC/NZno09yXqgbNwIEwBgsUDNaYkGzIzsKD+mOy -NTxLo/PJ5venVgboomDkWJqOOm+HtqfD64rczWyTS/ZdQhuFlk+aCYAwOhYZZH9Z -IEkKcW8xN5+q8Bi9nsst5F1cuw84LD4= +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAKvmpOQ/3/wqwe4Ltp+2QXd6KWAIoeku +wvHO0VwtE40/22nXY5NMt+zPVBTjApe4d4Ht+QiDECHr6uhhCMooJCfTNtkbrTI2 +ESQWzLq6TuUAWxySurgVUXd6k0PzxMspgv7YAOrdVzkaLT7z+QlnRe7yWaJU80kW +hGQA048xlI/BoXIxe1FG5YOE5mOY+VCLDFS83qphV1wcQZH4KtMdgla7tlx1QObJ +NbQEgi3kUL130idpkGeWOVIJz9IujRS1cuxOOrGWrl9Y58uhIv4Fm0jrV69TexOB +XtPYrGjX3AbPUvpJuK/5JUmg9B3/R/GElrR4e/4OObA2Oyt0NTmJKQMCAwEAAaNT +MFEwHQYDVR0OBBYEFOyZ2iR0gyD2vnoaC4u3Uv7snlpcMB8GA1UdIwQYMBaAFOyZ +2iR0gyD2vnoaC4u3Uv7snlpcMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL +BQADggEBAAg8Y5xKxlC2YS/2u97RMhcN/9OjzRWChApB5QGsP3vzlwwq1romyhGr +8o5Ud77dB5msReWPyNPqRsA4yiqPjeTJKvpsZGEdkMrAHrzhMb5dSlMb0h5EHnvO +81Kq0IEBcZ2FsCpNzhk8VaJCpv/KCUjBAnoqfOkwRJ2lBgzGV61pJZvdmM+TXBOc +nWWIWN5AndZp8KXHZl6AqoLi0hayKGkQlk+Olij2+3N7iZXf6ALBHhd94LvW5NqN +8HVrc6pph2DgRo5e0ng04k3Gf5fwxPJ8L8KhU0LBOfFbEN3MALECycBEiFI5JE0Y +rUY46oF/Vcsyw1okuVTm5UcBxlOj+ho= -----END CERTIFICATE----- diff --git a/experimental/packages/opentelemetry-instrumentation-http/test/fixtures/server-key.pem b/experimental/packages/opentelemetry-instrumentation-http/test/fixtures/server-key.pem index 81c27246449..2a171926302 100644 --- a/experimental/packages/opentelemetry-instrumentation-http/test/fixtures/server-key.pem +++ b/experimental/packages/opentelemetry-instrumentation-http/test/fixtures/server-key.pem @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDPND7M+inOP8dU -MeDpmLmnKwgy+CTWPklsxJtZG9ufxNfk68WAvF5bibV8IvSUQu6L0fFCG2TVYFsD -x5Ul600LFXtrCEq+CqEYPO75nEWM7Dr2pfmVYhXpVKPbebGHol9MQbjD9RDXxC/o -LbtkK5JoA4cv13UaZqqXK7ScV2iF3ncvNsuwL+XWu4ycifvaGk6tAJtKsmY6c07N -4yhIda6FqHN6Xek+HWrDRy3iq7Kt202rBB/y6PZOLftp9Y+Qvi+YFoT3Ar/Ms4Rr -K0oqsZ/j/Zv1El2P8Bx/QMlew5OCYfAY1DpWGqjiyBKMO4cHcVQZNQTuiZqcb/Ci -N6kI7S1rAgMBAAECggEAA4u31WckhwCFZzXxTN4Ns0QjwEeJzdbEB+X3aJd28y15 -qlO0jgbrMHLTVbv9ZnocvezKTaDNYW9kL1TfgwYbS+jCs2qxaL4i0pjcWA4qDIbQ -XX8qnblPea42nZ9f/9ux+MqZIFVVw/N6BGWf8s9iEoCY9CMiQGDoY2zeitxeEAhe -KGZHozaTUVAClrwMqKYlablWjX8zcoi6bKffUwz/MwecI2iVW72y9/xIGTlwhdZW -8kDlkBOea3QV5yafcJQ1VsHrvUX3rf4C5uknCenwKbC3Au4+kBdQjv+bUk6aMR38 -OdnMCaUcnuT/UzbbtOSgJ+sVcGW9Jqo0DfS5CNPhuQKBgQD2EtOhjkUErc8KUhPW -Pt8FNBAuoKsk4mRHpFsY2OjGYA50oiCtiphqfTzkQLbNhVtq83AHNUNWUKBjnMUd -nAOIIvhpiEI7O+RuOafBtcFBIrUo2Ey5dwfvLJrpb7pEnYj8DNFVPQ/aBxP+mD4b -RrHRY8DZdVHU9TDMDK7ObpKScwKBgQDXkASnc7O/D0iFxev004sqdTrGo3cBCJUH -h/c68BrUvPw5u6fFulq5Wt6OOaFoWQmUSVyrhZD3vfrZ1Jocid3wn9uuu9vOazcz -M3EOF1rz5bgjwb/vk6CyGh1MfmeVCRnuQ3mBIXQ0xwS4QY71Vvw3099fhbtbMHez -5gyQv1ojKQKBgHkXBqGHmxsUVL/lZ/GT+rdayWPImK+L4IEItfNiOhn0huiKJ75+ -Z0Zv3pkL52j3aOcWaFiDs2E0R9j8+lr5vRsu6kM0VDNF48ECCjVetXzSEYfJ+OeD -VZoyvwCEhIrjYtd1j0V8yOInfYVZcaaGgVZi2jGoc95x0dN3okXfT61VAoGAVrCA -bqdFPizzSXkTL15ztRt4C7JphWziIik37+fnom5uMPmauxX6rlgw8JmUo9ZK1+u4 -7PHGHxuz6i5p29hF/SMMwfSirRzJEjo52STjWvqjVx3wBnUkRvvhlIWxOmpylzNj -hd7iUOdIqqES0O+udvUp+8xYUI/pU9vMadnKciECgYB3cJ+7EPNgJgdpQ9Pslex8 -6iHdQH9DIyIb/KqQVe7em5NZXwANCAOQ6KqzhszM/eH7NoSeN7C9Z9uHHIHDfz4m -QO896l7rM1k1R/USaUK4By/O/t/V/aIGjOnPsXxEGrEPDXXBtzUAEs5yAa+Ne1m7 -BiP9MuDgBTVkV1iJx37eqg== +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCr5qTkP9/8KsHu +C7aftkF3eilgCKHpLsLxztFcLRONP9tp12OTTLfsz1QU4wKXuHeB7fkIgxAh6+ro +YQjKKCQn0zbZG60yNhEkFsy6uk7lAFsckrq4FVF3epND88TLKYL+2ADq3Vc5Gi0+ +8/kJZ0Xu8lmiVPNJFoRkANOPMZSPwaFyMXtRRuWDhOZjmPlQiwxUvN6qYVdcHEGR ++CrTHYJWu7ZcdUDmyTW0BIIt5FC9d9InaZBnljlSCc/SLo0UtXLsTjqxlq5fWOfL +oSL+BZtI61evU3sTgV7T2Kxo19wGz1L6Sbiv+SVJoPQd/0fxhJa0eHv+DjmwNjsr +dDU5iSkDAgMBAAECggEAE1op4hBW1PqzTms/KgfIovy7v7X5FFlRVQulgi0I8HPp +7aZz7VdLtXs5yggseIwp2BTEXnLy0/7NOVADP075kwoyOIrnGqn/kAKJFdR3oUxC +9ZqHLsYnn73K6nF9DComNy52G/rDIQiTY2zv8mEP/HCIKsBJi0bfrKpzJsG8KdrB +VXc1ORst/clwfsMzqL3iLkcnv2ZYfLTQtQfyrTiYbogrkMKCWmQ4uJ+tC10Par5j +mNq35f4ruXyQZb6Vnb9ZmpyhrS2oEdzr7NqZFdd97WA2s5Hmtyt+S0QEafPVjKRE +3cjCnB/yGQF9Dv4gHRS3FMwFCqehjdImNWrwfKEfUQKBgQDd3plNXNxRuMVrYM/e +4k/9qjOGXHktrnFs6BDmfLatcVfNO4s9+/WUb6WxyhiH849EbmSXkGVMXpKpxQd4 +74G45nH2HrLR8dghnMEuAeMri6DNJrrvi18JnK35mM0ve1/1Xqzk2KyfD5/aLz19 +eFmTH9WNPzuPriYa9SlHHeVbbQKBgQDGWD4Ui4u11OZDR39j/eUu3C1lH4wl9sPV +XOvJrNMIAF0+zLwaM/MYzmJdXYv7l8/EgIVCGPnEFscYpbgjMVAQAVdvU/i0rki1 +voFffeJSs7WvY91gH1b0CRPPIIgoibTY/cA0nfV+oSPvg+qOnM79a9zz7TmjyA8D +tJ8/u2bgLwKBgQDVTs3UsxKe/yXOtqUjhDGjj5857m4SnUQvkG2vKvf2iKIBjt2w +Gi1hKHYFGGe9TUzQXdIYZZr+cW5QCj3E53+wZN3r4lfJwNoqdqrDsMzXcMaIdlQD +OduFQj2BWobqv5LiNMPEwQw1YLAu9HwJxUtZR6HoyoJZAPVhtZKZ7QQ1gQKBgAKs +5gl46GWHfaOir0E2B4VeSu52QnmwnmueWT/bKO2Os7NJJ7BiywCmqAUCYgT+wzqv +URzXIWdXt0/JzHYNEDtnCTrjMxOc1jY9X5leJVNgQS8gdbf6ND4OcUn18mA5m0ri +AVm0V79hhQ6SBPPvgYtBjTVtGb3v0OQH564AZR7ZAoGAKojS2OgQqQ4+x3+J9Z8B +Pc6hvvYe0dTn5rp+t+fPTAXIus6AjZ7a8TtlQBebtYTI0HUambUhsvTfSAsKurNt +9tasedlJZZAVrEgtOONoxgx1ARrBInnMY75Acmzz74tiDzlub36Oo8Xit+m52UEM +LfGbaogkR6/j654iSC7t50k= -----END PRIVATE KEY----- diff --git a/experimental/packages/otlp-grpc-exporter-base/test/certs/ca.crt b/experimental/packages/otlp-grpc-exporter-base/test/certs/ca.crt index a95135830eb..ae2004f7f3e 100644 --- a/experimental/packages/otlp-grpc-exporter-base/test/certs/ca.crt +++ b/experimental/packages/otlp-grpc-exporter-base/test/certs/ca.crt @@ -1,33 +1,33 @@ -----BEGIN CERTIFICATE----- -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 -yl1xaUdcHA== +KoZIhvcNAQEBBQADggIPADCCAgoCggIBANwJuq3xVhEd/4RfgrrXkfO6a6mtGOfN +d+cZ5u8rmDb8sm9qk/F8DrXGBJx4fL/Y6CN+/aQ78vD0bBUoMuBErxQB0CraTfDN +nOJj3t8t/pi5teXzSieHwahlep5+FfKt6b9YS5j+O0ggPenYxlDbrnPnmjeTk/H7 +naRyli2jE+/UCp7qI1EYIV9khQJciSL9sHbP8isZ5cNQeGvncdalulrsI6xPPL0W +KQYXeuupAjPbYoIAelbR7CNAEn/i/Wke2RMVYeFMrMP+LrWjXXXfZ54v969po+If +9C6f/lQXz0ZNebH/wm7tK2WkKboujcy0wMWukv9OSg8OmqTUuKC4mwzt+oA6D895 +8PdJBrOZR36sTkHREw8R3W0EIsFOwdBPAuJlkqEAr370N3UaK0g+L6IGkOay9uZO +8L1SuMcU4zEhkARA8LbUOjpXXdE0TVukz6b6+6zgTix1D840HZNydK9pUlGQRA+2 +L9TbLAboMyHYsCe+YvnFafOb3KekBl9xQkO5CVp54sLWG+tMUQoHW+wvN6J49Nok +Y14rqDLlg1tIlH6JkgjbFH8p/1LjstOyp/rvHPr40/GRPMT2BkHsUfKDBvmi5i0S +04VLk/ftmOeaBT3HC0Do85STx9PTKaHC2WT/dE+7TyWWppVobEW7SQO/eXuPrRDy +feuvfYKLc9nnAgMBAAGjUzBRMB0GA1UdDgQWBBR07AlGPf7L2ZVPdKkhSYM5Y2SP +6jAfBgNVHSMEGDAWgBR07AlGPf7L2ZVPdKkhSYM5Y2SP6jAPBgNVHRMBAf8EBTAD +AQH/MA0GCSqGSIb3DQEBCwUAA4ICAQC1VLQmafhP3FrH+23/42NXa7VCTRBz48V2 +seZdkf1UseCeBw3iKq3iE5yoAUJEyqpOzw9FFffl8K+H2N8bPGf/ERAT0ZjMPuDx +3h3U7Uw4wjcg0WTjG5msywRG1Ge04g+1+QTWLhKfaVRB51PDiIw8p28ChP4/0X8R +p/oljxMObLK3D9koQgwjCqWigURnCe5OW8xqJFCTk7r03AlTMXcYAuDrBYpeYWrX +eHjJ2/6X5vmzbPrLsaycU8I5N0op/jsSbhipZDXOqVclsoyLct356VMFavPDtpkq +k6UhQY/+1ma0zfIAOxpHitFhF8kBviX2ar3JWhhSzTeTSn7rv0tFH9+aG3VVdghR +69FU8wa4Z90iCQfmBa4f4UaJx3tCYIktLSlXCPpu21au3/HcFy0fd/vtM0vrAusO +eauGIu3SmRSeOddrHcgy1+JLV/HHxvJn9ECF8WQ+5vDwP+PRp9w/PG+m+3Ot2HoR +CuEgcTw1+UCYu4sW/kxrob/LHSoKqBoeyxFXbKuxaaINjBk4HGPGlLYC6utT3Tzq +IqP3jZQbQiboinZ9Jfh2Bo/6WBIM6oLkff9pQrqIo/zhtOSD9oPSC0iR9ItVPUV4 +MwDCHAdApRc/y+/GQtHowGty5IwzK7QguFXxy4jd1NVJL0Q35g+p/e/j3xRjHNic +s7x9Cthaag== -----END CERTIFICATE----- diff --git a/experimental/packages/otlp-grpc-exporter-base/test/certs/ca.key b/experimental/packages/otlp-grpc-exporter-base/test/certs/ca.key index 3381ca5fd53..a980d35016d 100644 --- a/experimental/packages/otlp-grpc-exporter-base/test/certs/ca.key +++ b/experimental/packages/otlp-grpc-exporter-base/test/certs/ca.key @@ -1,52 +1,52 @@ -----BEGIN PRIVATE KEY----- -MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQDoB3khWn/I1kWr -oNXcOIUdYvTGK2ummcvIVrdNfUKhgVoZaEU8Vxl9IRfkd7hDJ5JwQ8W+nUze4Psk -ixaIdSZLdkvyHsDD7bgaJ8zoyRiJDGGqgfd/IRc+TzfxLRxp/SJFe+Y4coSKTZoZ -M5P9ja7xlgYAVKtd8KHRh3pDY+TWo3o1Okz0DYc7suZUzsnFdEFbuZvyiojiYTej -s0f4qzImX5g0Fdw/WkjmlqVf+o6XZ4II9apuiqVjVf/FHRqcyV//EEnl0fvKFqLO -4VvLvleuhPruD40F1ypVAlEOzcEOSiO/8HENhThJ/QB8rW/qs7vTfAUWW85Kd1Zt -/jtvNOhg4io2p0fD2LstLKkHYy0R+wuivUADFToQzgLPvGD7pucXufKu14YBHI4p -lr8TXOgNItEqnq30rnupFKzqpjzM0aD6fLu8yLXwdvdxiErCJIzZy+Uh7oOqyRh8 -tuhN9z90rBrZ0hNmIbri5F9WyGFngbLHz277oP6AwK5yeK07laV/LATtzYcGIyGN -GEGyQSMWjCrTmP00pp9F9n9VSm2m7iAsUumUJ380Vf1P9xSBZhKHpUOf18IGbvx0 -2sCQFykKKFXrTNeFLsmtngm1ljg9QvaZD83leTl9NP4uq/QjwdnCm/MZjYnYjf9J -3SmyBIVdOyo+4TYhrpDmCIuXQQhYTwIDAQABAoICAHGiq1PG7ztMmX13PRXoBmWA -f9GIFWZX/yIkOgy00ounfplf5DyriZurN/jYG0GkYUcjIfb7MdkcBVN93PDCsxkV -HBe9sPmj9Fy27ld5mU8RZcmscipsaeZFxOeUiMxtwTmXdwZhK4FShSxfgtSUbb/6 -kgDadr0AqzejaqETjNED6kekQGjsMTVvJfgV+GKAT7wc+H++ElEQfL/q/04Nhfee -LLwhkqbiUD7CO8b4PppvApPhwPD3bQ1r4mJGoTB1PVL9RrvL7c0o7d51J1Bu7aFW -llA+BHp+SMiuZEVkRm75p22K08tj2c/+nRzykhO3p77pB9LN7oewz376GmCZ4E4X -4DX4SxZdC+pmp19HGoTUKHXYWkZ0mfTVAjRDJ8/K499V4S+f11i7KifS5XWIDjJ7 -jT9fglX341bjslhNuxAVUf756riJGWnzr4RZg1FsbMUsBC7TrZBqqdxN82Z7f1qR -kkqCJk5bt3ESzTX+GReNPpK248xLnI4Q4Nb7P9IfnjJ55xZeCOj/RxNPgUtsnw5+ -hOoJAY/xaPEcSewPT9miur+50aUc5fA38i8e2tc6KCMaOOio8BVacNKVVxPZBvKl -gvuFDO9tsaaCCxnJcAk6npDOtMjaCoDKXjfXYlFcflG47RUdH9VHYsZl+rUJM7l+ -Swkj06Mon2gMcA6q/eCJAoIBAQD4jptvl9ZDgki/R3DM0strmFRiwpS20Rr2t8go -FLYp5q3dhEFnPkkY8cncb6H042qAJUX+2GcQoHCiEa8c3n5IaEaUdmW6QjCCJNm2 -7OJHGdOABzjI4hmrh+2bsHer0mJqZ1JQPxrNBGXhXCjR2VANz1QTmGG8zoP5DSAV -kcoZVRS4ly9+wKudUNPcFkoHFGLyDGSc1rBscy2wGqkS6J0GkmozoCfZtpxowq0C -yqI0QaYX+WPt+uYXialS4ydyHNRdUT7HfCCHkXjhdLdJvr055aPgoPlbWf9JeiTS -DNhYyRcBafX+YI9XMprhbdw150fla5rYvAENPSZ5FVyZ+f1ZAoIBAQDu+iqY3Jmf -fjc1hgHHvs0Ps4tY14t/eJPnlGXvlQIteugEwvXmG+sWhtXBZAWB8S17lFpHjP3/ -+2Gce3LLGWdwF7dDCyXexr05SdVKzqCAjk89+VE8+0iWoBmzrkKwRnaVK7LD4jE5 -t0J6dDZa8KzOvtjIBHgmW2tFaV8l35nM7rSqkeRoaETh6btAl2Tgp7ooW9HqTrc3 -uoFVEp4Mury3da7pXtS/n7U0DFsG33GzZ/7K+Mzw6hQfS90/fGE/BmX0xG908V+A -8kNoJ94nxU1d8aUPSngBFcHwnMIdXN/AqNZ02tonqWyiLOEQ9wEvXRoLaqaL8Ds+ -bMR4iLyIUgXnAoIBAEEU1g46K5gxnOq4wghfiXP6xt21JUtZJT5EkNwt0CTYid3e -q2FlJa6qYLifYkDE6zXyjIlWEGaCG/vTtY5Rk69R3mkxNyG2Aw2QqJEFJZqIYKC9 -Q1kWGrKXPNfvNOaAh9RkiWEJpPLZm/OONgH8bMGw78rRs4XEbTng/e2n5ssLRAmx -THZb7JOcfly6WVfRNrc6F34ZmMhMwEHEOVECJ1t5KuWpocWX0wx7LOH2PNKB/gN5 -AXlmoKi5GuThJYrzkYd9pnqFPd9Bb+1YqkVc9B8cyfQfMiuBPR74JHv7cQqOXL+6 -Bvc8QUwLrBIqueZDUMf5jOoDECNvR4uc1Epc8sECggEAAgFrdhjz2RjQEczsGucJ -BYa2NqqoawtyAlGGgXo4qHUNmWyhb6rwUCIVjSfvu+VwQkc+crdGMm3DpfKLRhUS -fyhTy2Y+jR4R3Hc4KQaO5kVLePOssNxTAaCaVp2xxZTxzdKuD2LIkvlsv2ZWRnEa -oimL3DHdaEUAI3b8625y9ftS3NOYnR+y5Ep33dTnbdM6hrgujM7YTslr6HDdjrHK -f6enLiIzmuAWPzeTU/1wENdglgd8gNEWFiUm2C+NCWBeXq1/WfXknUprMmaTQLYx -LganIfe4BhpOpFxMbL6oyg8grZ5gklCjrsC9qszH38PiQhJFD4uWk7GJ/JD5NBOs -JQKCAQACHubSr6dv5lBfgz7xVSJvjUMx7bALrYCLpgY+40Jq/HCY+Tv5qOL/sMCA -ZwJpCnGOIDF/tHdw/3XWNbgqqVjmhjJdpvm+3VI2O/vD70gMrsDJgFg6FU/crh1g -Gcq636vdxkiUXM9mGZYKO4rsmkZzO1CoQSsIx19vULyy7Pu43uDkYPpr8O5zCTFb -EEPiy7VcUiibVKyN+UzTcE9db95O5uLDe5slQeW4t5+/KVFSchlPFVR6G7guMmsV -rmDvRRi5BKgSUeZrR+Zd5HqfjhUuYzN3uqhh5BcjwlO4rYIALwq12ZatkgAl0QbH -LSSDAHCPKtJe2lRlXNugPt1cfedp +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 +IVfzMfMhpq56ecb5epI0q6DAuPrp67g= -----END PRIVATE KEY----- diff --git a/experimental/packages/otlp-grpc-exporter-base/test/certs/client.crt b/experimental/packages/otlp-grpc-exporter-base/test/certs/client.crt index 15054138a61..90c083444ee 100644 --- a/experimental/packages/otlp-grpc-exporter-base/test/certs/client.crt +++ b/experimental/packages/otlp-grpc-exporter-base/test/certs/client.crt @@ -1,32 +1,32 @@ -----BEGIN CERTIFICATE----- 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 -wyh/geb5PNlpGk0dAHbCRWd9l3W4tDXAptrMfw== +AAOCAg8AMIICCgKCAgEAmbx/mGHQQ54V6csQ1g44m1ChVbcibePDN0wdxSdTy0AH +LJnEhKf+cPLKASqoEUecAjz+nGeFqw9roCNrms7wqZRkRY9jgPO6DCDCHsBwOP07 +vClisHqtXJajXHfonuhgVUM5vPhr5R2a9wDdYXIZo1kMHmTcDj88EyM+PYaIVzdX +su9+bDPhQsy4+DKUhNpg8i7f5oFA9WUKfemZXhGKhmOa7bYP0gxx1kTqE+NoGzx4 +eGt1rAiXIe9Yh0gXJO2F6gqjnduj157H2RQXoRBze9s665pQStvfHHYPJi28wKPm ++M/+GMIqf8Hv4apjIdPe5pXSL7J9LsKBXrYZabWNF6hX8UTofkSaCiL0nQBWfnQ5 +IYSG8rfOujTQL81ph4U8IqLosg2pEQTB1cU8KYbW6HYh1ACLasSPIC3jOS1gADED +KShMGrnl/9sKq9wzmEKD9JHDc59zIc5kUb+CGImwMvkM4d6cxeBEgucw6Y16jtDK +OuvnDGKTjI2F6oerv6zklJ31G28K6CiURIBb8EJ/0epQXoemgFJkHVinPscZgxdu +jorEBjco1M67S/CqVingOPUfeT9uJsmBtpN1noIREV3Zu9yvugv1wnDiq5PPiNIb +YRJp82ntzmsgcT0daJ/M1VD3GOpGihZhwdnqOh1NecjZv8Izd2w6DkPjMkNhPkkC +AwEAAaNCMEAwHQYDVR0OBBYEFP7pxgMaS/6x81VNoAxUiiCR1HnmMB8GA1UdIwQY +MBaAFHTsCUY9/svZlU90qSFJgzljZI/qMA0GCSqGSIb3DQEBCwUAA4ICAQCd+4cK +kWu1XqMgX/k8O/IjF/5etbodKoc6t6KMGWVMJkPAxpdIVpBOJLk4Zk2inaNU7m/7 +B59n1RLGN7O8kYiXA5SDGb16mqPldPiUhO1OwvtF98dpNxJdgsT9PiuXudGA7zL+ +SrKtVS9tDnIyyhzQWO7ezqL0liLL4xDrdeBP0TdIs3iPM9decuRf0KW/vqZ0JSUu +BZ5ZWWxGD2edAg6SYiK+34pY5V4tcqeh0bykKOadya7TbF0AsE5TLd7GK6vvUQbA +OeXlZxtMgD0BPrugPClDFwG46WZM7UyBww5TmoCmj8TVcXcyCii18+6IbTTsmUu0 +sE+FI4viDkOuLvMn5rY0qT6FqgQ3tBJmzw0GRhi4rfzXbl2yu+66Yfl1dynq/nxC +micse7BWiRSNfpiD9oi3uT/SQNz38rg4oHBX+uUWDCo3YvGBbgdsBGbbQYv08Zec +wdHLZ1eKbORG1b5PvFZojz19I7SUwaUyeL8TpQ36IU+7IxRnUneLcpPcpD8oo9rB +KHYzIBstwsEDnQVe5dn3T1PEO2zuDLfUSc7jGC0qqUCK6F+JnxW44tW2pxtqhwNg +IiyOJ85/kfeBRcC3wSuwm5adEEnqiRtaQAcHb/l3ngZQHbP5cn6wUu4CBrW8snu5 +z5QgzOWeiM05EChu32alZu5UREbmjXeTcqGaSQ== -----END CERTIFICATE----- diff --git a/experimental/packages/otlp-grpc-exporter-base/test/certs/client.csr b/experimental/packages/otlp-grpc-exporter-base/test/certs/client.csr index 0749ac4c558..c857228a5c4 100644 --- a/experimental/packages/otlp-grpc-exporter-base/test/certs/client.csr +++ b/experimental/packages/otlp-grpc-exporter-base/test/certs/client.csr @@ -2,27 +2,27 @@ MIIErzCCApcCAQAwajELMAkGA1UEBhMCQ0wxCzAJBgNVBAgMAlJNMRowGAYDVQQH DBFPcGVuVGVsZW1ldHJ5VGVzdDENMAsGA1UECgwEVGVzdDEPMA0GA1UECwwGQ2xp ZW50MRIwEAYDVQQDDAlsb2NhbGhvc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw -ggIKAoICAQC1HBJa04xx7Tu2ZPy6P3ClSP9qRVSHDGP2hGVXTKOZLg0k+O3zVFpj -CEkbtug8ssfJsdS2qz+wB2xgBgyF7F9dT23wFwRfdtzFQtxhMZFfhEflKkm3HMjy -nD3LYd37v5DeMrXIC4dqlbazPFN/pIfODGnaLh13eYEDhx9IyiKrvYqZuDBcHj1u -ggDehJ7NoZ/gPcVZgHhXJzzRAsxlemiilhTEhBbPxzVoA15Lnt2dq8nLU/ZqkPhF -IB1ksSVh0Phmy2xT8eJrNeE5MdsMF/8/ONgn+K9HHtR9RA2aBkBXFl25KGXmwlbH -ZPaCYfVRvco16D1U7OhqV5EhBLgZMLXzo2ryR1Etjk11j5XEv20l8jeU023pqJoM -Q6SpWKFhGJLBxrR/ZlgYCDLwsrZw1+EOCijlAkyvscZQKxOuOIPwvz78y5JH+MSa -ELMMJm4U6DS2+n0i5Oy2rNj51OToEaARH2BHWreKNd9ZGsonqa8li6OdcaYSsChW -t4cFEeGwf3RWS/XcTIO0CUH12uL9qGcQwagDQq6ZfupWierdzIlUG9LPpLsJClez -6gjAeYhzfklpcHuZj1dURLZpeRy4RUOaSqURaqJuHNEvMN+wq1Q+JaugSCTOFmip -gehbUdncKWAzm0Ni0OX00iRP1K6/IGFvv08SZGIklsCFIPW00RVIEwIDAQABoAAw -DQYJKoZIhvcNAQELBQADggIBAB2DrTZ82dOgulaLPCgE7hd0sqcHo//DnNBxqJ1H -LsgEblf+v6VIbj0fjlVWYJ62KfkwgRMcROdHCRdQsU8Mh5CiW04GKwP555+oXNt/ -wGxovIyUasR4u3hdQknPiT871BeqmvyR1AUZunCZoFG6t1FG/tCkSh4YqkH82ITv -RpqqYFzIP3CCZIUxLBvwLxTOq+RcKV4Qobxjh/2JpGQVugQjjKbIp+bb9EfFDbmU -F3+L6Ed2RBb8o+DspsJz7152b4f8xydiFPt30Fc+MkWcJm18iadJR6zsisiT0Jec -6hOJh1Or/M96DeOha9a3/L7MLfzj5MOYQtzVuonSxYX3UaxJTjqNhbHZ08V4SV36 -SSXRCLPdlLz+iARKfPykTbZAm8flrhKCS1SEX8t7bDfbkWdrmIYY3xZq6Zm4BuLq -y8RC7ybt/xtadzPA9X1zilbGdXRP23pHrUwDWFvINRxr0YyGnBFMrPtkOVJBSUUk -mG8m3bSwi3pT1MBLd2G6D1QDtr9LjbThsRF+iVg1uFokTUspwNTtiQRgEBMUnCw8 -j2rnPxAOySR94h6FXkbL2YXXjvmW3wIQTD2YuUrPVntTFJEfTf0dMsqqMg8c11Tw -UQq6+EvJxD02fkrCcolDnq7lHbfpaY41W4e0CYq80b5vBzr4uY0kRm3w3z3QXvF7 -Afs5 +ggIKAoICAQCZvH+YYdBDnhXpyxDWDjibUKFVtyJt48M3TB3FJ1PLQAcsmcSEp/5w +8soBKqgRR5wCPP6cZ4WrD2ugI2uazvCplGRFj2OA87oMIMIewHA4/Tu8KWKweq1c +lqNcd+ie6GBVQzm8+GvlHZr3AN1hchmjWQweZNwOPzwTIz49hohXN1ey735sM+FC +zLj4MpSE2mDyLt/mgUD1ZQp96ZleEYqGY5rttg/SDHHWROoT42gbPHh4a3WsCJch +71iHSBck7YXqCqOd26PXnsfZFBehEHN72zrrmlBK298cdg8mLbzAo+b4z/4Ywip/ +we/hqmMh097mldIvsn0uwoFethlptY0XqFfxROh+RJoKIvSdAFZ+dDkhhIbyt866 +NNAvzWmHhTwiouiyDakRBMHVxTwphtbodiHUAItqxI8gLeM5LWAAMQMpKEwaueX/ +2wqr3DOYQoP0kcNzn3MhzmRRv4IYibAy+Qzh3pzF4ESC5zDpjXqO0Mo66+cMYpOM +jYXqh6u/rOSUnfUbbwroKJREgFvwQn/R6lBeh6aAUmQdWKc+xxmDF26OisQGNyjU +zrtL8KpWKeA49R95P24myYG2k3WeghERXdm73K+6C/XCcOKrk8+I0hthEmnzae3O +ayBxPR1on8zVUPcY6kaKFmHB2eo6HU15yNm/wjN3bDoOQ+MyQ2E+SQIDAQABoAAw +DQYJKoZIhvcNAQELBQADggIBAHajKbK2gPh4gbhlfAzWtAwM/AiehMS/2C6K0iIP +VetHiNECsriw6nB+W3h5u4oHUT5GtERMmucT/BFiNvI5g2hgiUcNgEVxzs7ha7iY +hvqMUVe4Ned+Ho/e+rCFxMGOXTl9FiJLDhX5pwVm9YEs6NQxQmLrd6719DUgWXQB +vFbBDz3/bns1Zl7qP5COhVqUEkCBS+CnlHo+a6q8YAsr5p+dwppWhxF4pBpricxo +Le2apo3JznZvBUQ2DdSYflMVwhVhgGRrSvPmYmXqI38lpwyRb/B+7RcjS4D6wEmj +y1Op0XwYqmZFaVkj+ltQXueLDKy6JCl2SSW9EHLfIluAsJl0sXwRZtsDI/m2oNX/ +0G1/b4BjlA0OK3YCCG/ovsOeX11i2to6+84FMbz9U8rc1zkAK/kwTPmhipdszS29 +r4WBBTrjQRLCb0eCaSf/m1abtpDyka4O17AwHmT0KKOUSrn4UCmY4zlW/M8QYYl/ +P3QzIE1ElvHTgEAeAUed6NvLqlOVtRWIv/n9mLqHZUMFLChiGGrxKrlh+oV5Ng+x +rkPocdWF+nEfeWRPFbVnMj1hiBnTxquYlh/oz+NLG1aGedhNKUj+cAwWfv94wxRf +bC6/TuR+6l44SZTZWdfr46IJ1swA/pWmF1CZc4nMOgcnYqZG3WEWhAW9QeBNEcoS +Yqcf -----END CERTIFICATE REQUEST----- diff --git a/experimental/packages/otlp-grpc-exporter-base/test/certs/client.key b/experimental/packages/otlp-grpc-exporter-base/test/certs/client.key index cf6943b4494..3880f36bb39 100644 --- a/experimental/packages/otlp-grpc-exporter-base/test/certs/client.key +++ b/experimental/packages/otlp-grpc-exporter-base/test/certs/client.key @@ -1,52 +1,52 @@ -----BEGIN PRIVATE KEY----- -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 -Z8RCj+2D8AOrQpJVx+m69dwrpg0v +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 +Y1eYnNTtaASQ+/n8qc6SEjkFToYF1w== -----END PRIVATE KEY----- diff --git a/experimental/packages/otlp-grpc-exporter-base/test/certs/server.crt b/experimental/packages/otlp-grpc-exporter-base/test/certs/server.crt index 767119e3dd4..8626446a292 100644 --- a/experimental/packages/otlp-grpc-exporter-base/test/certs/server.crt +++ b/experimental/packages/otlp-grpc-exporter-base/test/certs/server.crt @@ -1,32 +1,32 @@ -----BEGIN CERTIFICATE----- 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 -9vYUtpBXNFJBDXw8Ys/WIJ5WgF05cI8uFrDxgA== +AAOCAg8AMIICCgKCAgEAugwtzPdH4JzxREWqKbhRB2M6XtUyE6AxNSwC2/x2jwxD +G8WxrehkW5twUGozm4U2Y/8BVjq9TYxF8Fg6Imj1p9/9Nt758nszxQ7Gxc9Q+obU +fI7SUroG7dniIPqMNwYjz+BoN0hiXcJng2y8D7fxnAv8XUXUrrcQnAaGYkTdybHR +M1Qx14v7vBjTOdTafNl2uW0RPpznaDzB6G17xUsSeTJt/dWrRRpPEPlAUDrlU1cl +YAZryAovTDn6xBSiqEPIco9mDPcjVKN//8hGe8oviPC4Dl3r3lsrxmenWRpD+PKx +3H2DVX2/+RgP0LI2ZSCW5nj9vt8G25TY1dVo4UFGRqrI2KKavia3SsXdkdujtr9d +Xjry2iNtqYd3ygEfjwvZuziqS1t+cCjlIMmfzgUy3fywVTzrd2J2aemA5PhGj7DK +8lSKaSir5ZYqEg/lJ2Tt9JyGahs/tKXE1RgKFbCg9SLqk+BR3O8RtpI8s/pR6RJB +ZWSL9T9uc91uWiVNrrqtdLBOossIKpx+u1dh1IMtgOQXis6M4ENCRqVCaAuAz5TM +KE3p/VJ7qCTzPd0shznOSCBXJ1e8I//BaegnhNtWbgJFyGYgoG1xcpF5uFYgzH8n +IwU+X/z4O8yx8tLg1ZVcPDEoRC+xbW6FEY/kKfrfO6bdUcfpxd81cNVjK6qpeQMC +AwEAAaNCMEAwHQYDVR0OBBYEFH5P/YpMdZMwg7ZEcRzzb6m80uNUMB8GA1UdIwQY +MBaAFHTsCUY9/svZlU90qSFJgzljZI/qMA0GCSqGSIb3DQEBCwUAA4ICAQA7mHnN +NYgsdgknwF+G8npJ1h4rAbO5py2gXjZl1kXG3FFiDkA/igXBIYUO5/fIi+TVPzWH +zo0BAX4Syxp+NokinRyO8hQeL5ByVI3ASTKXi9ip7euzv6BgdiNbJq65wQipMJwV +uWD7f0UYyLePkFv/O6+Ya8b/9PvyExRJOZA7xs6o2/gmkIv0jEJF0nPiP+V8XETv +LEvFD/uReX3Q+cYTIgYbO2zjBBPD+aI77JX7lfHDRufNJ0v1LAgvADdk21LNFKdJ +r5tVy1EjrXHnhmnpxupPNCDhta512aUTMWuhQH3m72Hza8uQE1H/SBEiBmpWFh6O +QfHgywI4GzXSz5mybIhO9qAu/EmTC/3W6nlceewGpXRuoYm61soKZaze2emr03iW +vQOqSBE6u2UrkHocC+zQAPXqBf6HnmDXk4BF1I1dF0egdCg18oQwdkPWKA7nuD0O +yixITWmRntGvtLP+W1+EVq1b/y6LsCPF1W5RnnrjuVOgt3a0fKzcQHXlE3svlNVU +2sF+4bggEXQw7EWYQrtQg/FezwvUs2MVFXuAZwTeSIDVgcrXZ9AeTmaERqMbh8zE +VO5ZCk3zsaJWVKZUsGYDjbN/OpyKylygGdusQDvESvmZEFv8+y0sz6aN4oohhZZ4 +HwK87rHU7KmAnQxL7O3gKi2gCZhj4NdssGXArQ== -----END CERTIFICATE----- diff --git a/experimental/packages/otlp-grpc-exporter-base/test/certs/server.csr b/experimental/packages/otlp-grpc-exporter-base/test/certs/server.csr index a1789d317fc..d95652b86a7 100644 --- a/experimental/packages/otlp-grpc-exporter-base/test/certs/server.csr +++ b/experimental/packages/otlp-grpc-exporter-base/test/certs/server.csr @@ -2,27 +2,27 @@ MIIErzCCApcCAQAwajELMAkGA1UEBhMCQ0wxCzAJBgNVBAgMAlJNMRowGAYDVQQH DBFPcGVuVGVsZW1ldHJ5VGVzdDENMAsGA1UECgwEVGVzdDEPMA0GA1UECwwGU2Vy dmVyMRIwEAYDVQQDDAlsb2NhbGhvc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw -ggIKAoICAQDUo9M2BeqY+T1d1VLF6zv10n/DfWjxxnhetj68MCJXLsadWSOjVABw -rc25JpiNGi2UejFMMQR1fQ+wbCc2lyR1g1v51CnY8nSDfl1Sb2mY9+pK99FmNhCx -+SQRb+3vFnPg2yrX3Ghh2pNUVTwKZYOOevY476eWVYsrtci1y+Uk+dSY9q0bZ8nn -BXgoqE4IA5v0fhwHx61Q5Siyvb2HwZJRCzHGyZFGRi8q2+HWgko3ptbEa7UwI/wD -ej7cVfUp94FlaVHGNqhZB0sP94fpDyTWbRQYu2lYnAWw8y32Vdiq1189pgzjkxMw -hoYmRGEnX8CLDy3CeITAJcY1XbhHyk0PVjdY8WGTSX0xtJ8Wa321Y9fQD33Tj708 -GoeVMfFY6Q9kkHO9QU7DNV32+rQI3qGg3HHRY1tpKRuw3RQExJLJ6ollN5c2mLRj -laH9T2tuQLq31KNCOeFUnG42XwrRuca4ixLOSEomDROomHrZesDPWaHkAayRepua -3RgU+HK5nsx101yfkbG6ZdSGlA/3inMXy5aGBOfJiBn4DfgCouLHQQf797SdpzsM -Z2p5djsMo4tGGHplPp7HaCrkiwmY3VXh628AcWEWNbSl8AYwjAs9jthah3T9fS62 -q7/Oa31kjtvnv4W3VXFWKvprEBgdkosjA2IwSPL9QIxO74j9bdUUFQIDAQABoAAw -DQYJKoZIhvcNAQELBQADggIBAMqeI7OLkS0nIV2XJDVyaLwv1duhTqbusUTLMWI4 -8SjTtGrR/NDQ29heb2LyJlPaFxLnB2kWEGTHm4xqXS6PxDA7tOGgv3V8Bv75s0Te -NzLKVaj+CsqZAz8QDR51/R6kVgFn/6GYzMBrq/ZRYMlenx6eu+NUO/oY8yZvjqxd -2zFmKIQmr6GwvVB7r4N15jFHYo8X7nCnT0mwj+P1xYyLc4x+QCTyhdjCxnpKBX/f -0EMAbVSeT4qT+/1V/esd/Ubmp7a9OkdHFt4ySt0iRwWZs/8KTpOh8oUCgC9NS6c5 -HdEyDdVkulEs2LO6hjyd2RuqxN0VQ+TDYLh8WaZ0Y3RXg15CBJO/+t3V5itWTdXR -VmjDOp701Nf1nepo2uj7TEu9TPb86aysr9tpr0ArKzulN50nWrMfe1tPlPWp5uIi -gN5mM0kT5kAyyEMj5xcpFVPkfjA/Maw0THSRRpyICmtRpP4QPxNhpPIG3Z9d4/Fc -OtUujyv0n/IVjfWC0sfgNGQ6dA+/AwYc7esrV3UPWVlf2ReDUyCLpPVtn22Oj8dy -0ZG72IJiZgSMnwFkuxjMIKbAmxDun6LrylF7Xqn9uTUmLK5EhAmdRLhb/naa3x/j -vPfKu0BILQ6A9yUeHRpEHs8iOjWv1b3tp0KQqypdnJ2RR00nzQovvHTHG/AO0Lkh -k/Y5 +ggIKAoICAQC6DC3M90fgnPFERaopuFEHYzpe1TIToDE1LALb/HaPDEMbxbGt6GRb +m3BQajObhTZj/wFWOr1NjEXwWDoiaPWn3/023vnyezPFDsbFz1D6htR8jtJSugbt +2eIg+ow3BiPP4Gg3SGJdwmeDbLwPt/GcC/xdRdSutxCcBoZiRN3JsdEzVDHXi/u8 +GNM51Np82Xa5bRE+nOdoPMHobXvFSxJ5Mm391atFGk8Q+UBQOuVTVyVgBmvICi9M +OfrEFKKoQ8hyj2YM9yNUo3//yEZ7yi+I8LgOXeveWyvGZ6dZGkP48rHcfYNVfb/5 +GA/QsjZlIJbmeP2+3wbblNjV1WjhQUZGqsjYopq+JrdKxd2R26O2v11eOvLaI22p +h3fKAR+PC9m7OKpLW35wKOUgyZ/OBTLd/LBVPOt3YnZp6YDk+EaPsMryVIppKKvl +lioSD+UnZO30nIZqGz+0pcTVGAoVsKD1IuqT4FHc7xG2kjyz+lHpEkFlZIv1P25z +3W5aJU2uuq10sE6iywgqnH67V2HUgy2A5BeKzozgQ0JGpUJoC4DPlMwoTen9Unuo +JPM93SyHOc5IIFcnV7wj/8Fp6CeE21ZuAkXIZiCgbXFykXm4ViDMfycjBT5f/Pg7 +zLHy0uDVlVw8MShEL7FtboURj+Qp+t87pt1Rx+nF3zVw1WMrqql5AwIDAQABoAAw +DQYJKoZIhvcNAQELBQADggIBAFnqM/j2b2MwoCbm5JD9CK+qkgelaousepWkLYfK +UCG4DObwX8fNfvxtWNfdGHY6RkSVvNVuRzaiCC/r8UhRi0quVOB8t2WcyKccd+fK +czy3IrXYd0aqt6CCV7zozuP3tSxRWINnL+1wwMPQJPUS3JFcRB+lMR/fAhiwzkTD +FInpz4Fn9GdWpht3gDKbMPcTnJ99+I7ZXpu/C2joM0XUQyxypKKduZmwrCFRusWz +nJG/3YO6raCFWBisQXuXkOvyRuq2VSk0cugYqosSx0g+ObGv+ikicQeZlhUnqflM +pwhnF9tcflt19QLlHR83J7ia579nzgTsU12UgddjHN7Q7w6j+dCby5T3kwvvO3O1 +ZJK16GDrtMCqccidR9nHsB2aOqxFSdpHDOuksU/aEnB+UzIe4ysssu+/SeWrnuhf +Q39np7XviY5JuMqJ9kZDfsLVFHYoLMt8vqfpYQ3FoKkXTxN1fOycwHD2kaqhOyzk +uiVBA3TRasYF0gqsRIWhM5jrC4XAJizdLiZu2Bfw1Sl8rxOGWlkcOMNny761CO/r +6EXwcGUaef/HlPnHMEt+QDezsrahgrodfrYOeEVt0kZ3HZeUsH2hlq7fiXmPzerr +cOcr+4Zgs+zD4KS/B6JYDnNAt9ofLzkFlI7PQZuo/Joek+8IxhRZGxUp6ZPyVAbt +KaR+ -----END CERTIFICATE REQUEST----- diff --git a/experimental/packages/otlp-grpc-exporter-base/test/certs/server.key b/experimental/packages/otlp-grpc-exporter-base/test/certs/server.key index e12d44080b8..11128690681 100644 --- a/experimental/packages/otlp-grpc-exporter-base/test/certs/server.key +++ b/experimental/packages/otlp-grpc-exporter-base/test/certs/server.key @@ -1,52 +1,52 @@ -----BEGIN PRIVATE KEY----- -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 -5p83sn9+KMSeoG1Wryl30EpNjQS5 +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 +Zwfp7nlXpHi90XmA7ZQ8TAFcunWQAj0= -----END PRIVATE KEY----- diff --git a/experimental/packages/otlp-transformer/src/common/internal-types.ts b/experimental/packages/otlp-transformer/src/common/internal-types.ts index 93e07a50a6f..818c34e2d53 100644 --- a/experimental/packages/otlp-transformer/src/common/internal-types.ts +++ b/experimental/packages/otlp-transformer/src/common/internal-types.ts @@ -21,6 +21,15 @@ export interface Resource { /** Resource droppedAttributesCount */ droppedAttributesCount: number; + + entityRefs?: EntityRef[]; +} + +export interface EntityRef { + schemaUrl?: string; + type: string; + idKeys: string[]; + descriptionKeys: string[]; } /** Properties of an InstrumentationScope. */ diff --git a/experimental/packages/otlp-transformer/src/common/internal.ts b/experimental/packages/otlp-transformer/src/common/internal.ts index 80f61e0553d..6f7e752cbd4 100644 --- a/experimental/packages/otlp-transformer/src/common/internal.ts +++ b/experimental/packages/otlp-transformer/src/common/internal.ts @@ -14,6 +14,7 @@ * limitations under the License. */ import type { + EntityRef, IAnyValue, IInstrumentationScope, IKeyValue, @@ -21,15 +22,28 @@ import type { } from './internal-types'; import { Attributes } from '@opentelemetry/api'; import { InstrumentationScope } from '@opentelemetry/core'; -import { Resource as ISdkResource } from '@opentelemetry/resources'; +import { + Resource as ISdkResource, + Entity as ISdkEntity, +} from '@opentelemetry/resources'; export function createResource(resource: ISdkResource): Resource { return { attributes: toAttributes(resource.attributes), droppedAttributesCount: 0, + entityRefs: toEntityRefs(resource.entities), }; } +export function toEntityRefs(entityRefs: ISdkEntity[]): EntityRef[] { + return entityRefs.map(ref => ({ + schemaUrl: ref.schemaUrl, + type: ref.type, + idKeys: Object.keys(ref.identifier), + descriptionKeys: Object.keys(ref.attributes), + })); +} + export function createInstrumentationScope( scope: InstrumentationScope ): IInstrumentationScope { diff --git a/experimental/packages/otlp-transformer/test/logs.test.ts b/experimental/packages/otlp-transformer/test/logs.test.ts index ff4412059e8..cb82449d00a 100644 --- a/experimental/packages/otlp-transformer/test/logs.test.ts +++ b/experimental/packages/otlp-transformer/test/logs.test.ts @@ -15,7 +15,11 @@ */ import { HrTime, TraceFlags } from '@opentelemetry/api'; import { InstrumentationScope } from '@opentelemetry/core'; -import { Resource, resourceFromAttributes } from '@opentelemetry/resources'; +import { + Resource, + resourceFromAttributes, + resourceFromDetectedResource, +} from '@opentelemetry/resources'; import * as assert from 'assert'; import { ReadableLogRecord } from '@opentelemetry/sdk-logs'; import { SeverityNumber } from '@opentelemetry/api-logs'; @@ -60,6 +64,7 @@ function createExpectedLogJson( }, ], droppedAttributesCount: 0, + entityRefs: [], }, schemaUrl: undefined, scopeLogs: [ @@ -107,11 +112,23 @@ function createExpectedLogProtobuf(): IExportLogsServiceRequest { resource: { attributes: [ { - key: 'resource-attribute', - value: { stringValue: 'some attribute value' }, + key: 'id_key_1', + value: { stringValue: 'id_value_1' }, + }, + { + key: 'attr_key_1', + value: { stringValue: 'attr_value_1' }, }, ], droppedAttributesCount: 0, + entityRefs: [ + { + descriptionKeys: ['attr_key_1'], + idKeys: ['id_key_1'], + schemaUrl: 'http://url.to.schema', + type: 'entity_type_1', + }, + ], }, scopeLogs: [ { @@ -147,6 +164,7 @@ function createExpectedLogProtobuf(): IExportLogsServiceRequest { describe('Logs', () => { let resource_1: Resource; let resource_2: Resource; + let resource_3: Resource; let scope_1: InstrumentationScope; let scope_2: InstrumentationScope; @@ -165,6 +183,8 @@ describe('Logs', () => { let log_1_2_1: ReadableLogRecord; // using `resource_2`, `scope_1`, `log_fragment_1` let log_2_1_1: ReadableLogRecord; + // using `resource_3`, `scope_1`, `log_fragment_1` + let log_3_1_1: ReadableLogRecord; beforeEach(() => { resource_1 = resourceFromAttributes({ @@ -173,6 +193,16 @@ describe('Logs', () => { resource_2 = resourceFromAttributes({ 'resource-attribute': 'another attribute value', }); + resource_3 = resourceFromDetectedResource({ + entities: [ + { + type: 'entity_type_1', + identifier: { id_key_1: 'id_value_1' }, + attributes: { attr_key_1: 'attr_value_1' }, + schemaUrl: 'http://url.to.schema', + }, + ], + }); scope_1 = { name: 'scope_name_1', version: '0.1.0', @@ -226,6 +256,11 @@ describe('Logs', () => { resource: resource_2, instrumentationScope: scope_1, }; + log_3_1_1 = { + ...log_fragment_1, + resource: resource_3, + instrumentationScope: scope_1, + }; }); describe('createExportLogsServiceRequest', () => { @@ -296,7 +331,7 @@ describe('Logs', () => { describe('ProtobufLogsSerializer', function () { it('serializes an export request', () => { - const serialized = ProtobufLogsSerializer.serializeRequest([log_1_1_1]); + const serialized = ProtobufLogsSerializer.serializeRequest([log_3_1_1]); assert.ok(serialized, 'serialized response is undefined'); const decoded = root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest.decode( diff --git a/experimental/packages/otlp-transformer/test/metrics.test.ts b/experimental/packages/otlp-transformer/test/metrics.test.ts index 22d01ed5bdb..f1a47f4944e 100644 --- a/experimental/packages/otlp-transformer/test/metrics.test.ts +++ b/experimental/packages/otlp-transformer/test/metrics.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ import { ValueType } from '@opentelemetry/api'; -import { resourceFromAttributes } from '@opentelemetry/resources'; +import { resourceFromDetectedResource } from '@opentelemetry/resources'; import { AggregationTemporality, DataPointType, @@ -43,6 +43,18 @@ const ATTRIBUTES = { describe('Metrics', () => { const expectedResource = { attributes: [ + { + key: 'resource-entity-id', + value: { + stringValue: 'resource entity value', + }, + }, + { + key: 'resource-entity-attribute', + value: { + stringValue: 'resource entity attribute value', + }, + }, { key: 'resource-attribute', value: { @@ -50,6 +62,14 @@ describe('Metrics', () => { }, }, ], + entityRefs: [ + { + descriptionKeys: ['resource-entity-attribute'], + idKeys: ['resource-entity-id'], + schemaUrl: 'http://url.to.resource.schema', + type: 'resource-entity-type', + }, + ], droppedAttributesCount: 0, }; @@ -302,8 +322,22 @@ describe('Metrics', () => { } function createResourceMetrics(metricData: MetricData[]): ResourceMetrics { - const resource = resourceFromAttributes({ - 'resource-attribute': 'resource attribute value', + const resource = resourceFromDetectedResource({ + attributes: { + 'resource-attribute': 'resource attribute value', + }, + entities: [ + { + identifier: { + 'resource-entity-id': 'resource entity value', + }, + type: 'resource-entity-type', + attributes: { + 'resource-entity-attribute': 'resource entity attribute value', + }, + schemaUrl: 'http://url.to.resource.schema', + }, + ], }); return { resource: resource, diff --git a/experimental/packages/otlp-transformer/test/trace.test.ts b/experimental/packages/otlp-transformer/test/trace.test.ts index 6b0cd633bcb..bb96ed56704 100644 --- a/experimental/packages/otlp-transformer/test/trace.test.ts +++ b/experimental/packages/otlp-transformer/test/trace.test.ts @@ -16,7 +16,10 @@ import * as root from '../src/generated/root'; import { SpanKind, SpanStatusCode, TraceFlags } from '@opentelemetry/api'; import { TraceState } from '@opentelemetry/core'; -import { Resource, resourceFromAttributes } from '@opentelemetry/resources'; +import { + Resource, + resourceFromDetectedResource, +} from '@opentelemetry/resources'; import { ReadableSpan } from '@opentelemetry/sdk-trace-base'; import * as assert from 'assert'; import { toBase64 } from './utils'; @@ -61,9 +64,31 @@ function createExpectedSpanJson(options: OtlpEncodingOptions) { { resource: { attributes: [ + { + key: 'resource-entity-id', + value: { + stringValue: 'resource entity value', + }, + }, + { + key: 'resource-entity-attribute', + value: { + stringValue: 'resource entity attribute value', + }, + }, { key: 'resource-attribute', - value: { stringValue: 'resource attribute value' }, + value: { + stringValue: 'resource attribute value', + }, + }, + ], + entityRefs: [ + { + descriptionKeys: ['resource-entity-attribute'], + idKeys: ['resource-entity-id'], + schemaUrl: 'http://url.to.resource.schema', + type: 'resource-entity-type', }, ], droppedAttributesCount: 0, @@ -155,9 +180,31 @@ function createExpectedSpanProtobuf() { { resource: { attributes: [ + { + key: 'resource-entity-id', + value: { + stringValue: 'resource entity value', + }, + }, + { + key: 'resource-entity-attribute', + value: { + stringValue: 'resource entity attribute value', + }, + }, { key: 'resource-attribute', - value: { stringValue: 'resource attribute value' }, + value: { + stringValue: 'resource attribute value', + }, + }, + ], + entityRefs: [ + { + descriptionKeys: ['resource-entity-attribute'], + idKeys: ['resource-entity-id'], + schemaUrl: 'http://url.to.resource.schema', + type: 'resource-entity-type', }, ], droppedAttributesCount: 0, @@ -233,8 +280,22 @@ describe('Trace', () => { let span: ReadableSpan; beforeEach(() => { - resource = resourceFromAttributes({ - 'resource-attribute': 'resource attribute value', + resource = resourceFromDetectedResource({ + attributes: { + 'resource-attribute': 'resource attribute value', + }, + entities: [ + { + identifier: { + 'resource-entity-id': 'resource entity value', + }, + type: 'resource-entity-type', + attributes: { + 'resource-entity-attribute': 'resource entity attribute value', + }, + schemaUrl: 'http://url.to.resource.schema', + }, + ], }); span = { spanContext: () => ({ diff --git a/packages/opentelemetry-resources/src/Resource.ts b/packages/opentelemetry-resources/src/Resource.ts index 41d14269af9..f55e99cadfa 100644 --- a/packages/opentelemetry-resources/src/Resource.ts +++ b/packages/opentelemetry-resources/src/Resource.ts @@ -16,6 +16,7 @@ import { Attributes } from '@opentelemetry/api'; import { RawResourceAttribute } from './types'; +import { Entity } from './entity'; /** * An interface that represents a resource. A Resource describes the entity for which signals (metrics or trace) are @@ -41,6 +42,11 @@ export interface Resource { */ readonly attributes: Attributes; + /** + * @returns a list of Entities associated with the resource + */ + readonly entities: Entity[]; + /** * Returns a promise that will never be rejected. Resolves when all async attributes have finished being added to * this Resource's attributes. This is useful in exporters to block until resource detection diff --git a/packages/opentelemetry-resources/src/detect-resources.ts b/packages/opentelemetry-resources/src/detect-resources.ts index c1bdba317d6..b7255935c2e 100644 --- a/packages/opentelemetry-resources/src/detect-resources.ts +++ b/packages/opentelemetry-resources/src/detect-resources.ts @@ -16,7 +16,7 @@ import { diag } from '@opentelemetry/api'; import { Resource } from './Resource'; -import { emptyResource, resourceFromDetectedResource } from './ResourceImpl'; +import { emptyResource, resourceFromDetectedResource } from './resource-impl'; import { ResourceDetectionConfig } from './config'; /** diff --git a/packages/opentelemetry-resources/src/entity-impl.ts b/packages/opentelemetry-resources/src/entity-impl.ts new file mode 100644 index 00000000000..73c11b78050 --- /dev/null +++ b/packages/opentelemetry-resources/src/entity-impl.ts @@ -0,0 +1,182 @@ +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Attributes, AttributeValue, diag } from '@opentelemetry/api'; +import { DetectedEntity, DetectedResourceAttributeValue } from './types'; +import { identity, isPromiseLike } from './utils'; +import { Entity } from './entity'; + +export class EntityImpl implements Entity { + private _type: string; + private _schemaUrl?: string; + private _identifier: Attributes; + private _asyncAttributesPending = false; + private _rawAttributes: [string, DetectedResourceAttributeValue][]; + private _memoizedAttributes?: Attributes; + + constructor(entity: DetectedEntity) { + this._type = entity.type; + this._schemaUrl = entity.schemaUrl; + this._identifier = entity.identifier; + + if (entity.attributes) { + this._rawAttributes = Object.entries(entity.attributes).map(([k, v]) => { + if (isPromiseLike(v)) { + // side-effect + this._asyncAttributesPending = true; + + return [ + k, + v.then(identity, err => { + diag.debug( + "a resource's async attributes promise rejected: %s", + err + ); + return [k, undefined]; + }), + ]; + } + + return [k, v]; + }); + } else { + this._rawAttributes = []; + } + } + + get type() { + return this._type; + } + + get schemaUrl() { + return this._schemaUrl; + } + + get identifier() { + return this._identifier; + } + + get asyncAttributesPending() { + return this._asyncAttributesPending; + } + + public async waitForAsyncAttributes(): Promise { + if (!this._asyncAttributesPending) { + return; + } + this._rawAttributes = await Promise.all( + this._rawAttributes.map>( + async ([k, v]) => [k, await v] + ) + ); + this._asyncAttributesPending = false; + } + + public get attributes(): Attributes { + if (this.asyncAttributesPending) { + diag.error( + 'Accessing resource attributes before async attributes settled' + ); + } + + if (this._memoizedAttributes) { + return this._memoizedAttributes; + } + + const attrs: Attributes = {}; + for (const [k, v] of this._rawAttributes) { + if (isPromiseLike(v)) { + diag.debug(`Unsettled resource attribute ${k} skipped`); + continue; + } + attrs[k] ??= v; + } + + // only memoize output if all attributes are settled + if (!this._asyncAttributesPending) { + this._memoizedAttributes = attrs; + } + + return attrs; + } +} + +/** + * Merge detected entities. Entities are assumed to be in priority order (highest first). + */ +export function mergeEntities(...entities: Entity[]): Entity[] { + // Construct a set of detected entities, E + const entityMap: Record = {}; + + // For each entity detector D, detect entities (already done) + + // For each entity detected, d' + for (const entity of entities) { + // If an entity e' exists in E with same entity type as d', do one of the following: + const prevEntity = entityMap[entity.type]; + if (prevEntity != null) { + // If the entity identity is different: drop the new entity d'. + if (!attrsEqual(prevEntity.identifier, entity.identifier)) { + continue; + } + + // If the entity identity is the same, but schemaUrl is different: drop the new entity d' Note: We could offer configuration in this case + if (entity.schemaUrl !== prevEntity.schemaUrl) { + continue; + } + + // If the entity identiy and schemaUrl are the same, merge the descriptive attributes of d' into e': + // For each descriptive attribute da' in d' + for (const [k, v] of Object.entries(entity.attributes)) { + // If da'.key does not exist in e', then add da' to ei + if (prevEntity.attributes[k] != null) { + prevEntity.attributes[k] = v; + } + + // otherwise, ignore + } + } + } + + return [...Object.values(entityMap)]; +} + +function attrsEqual(obj1: Attributes, obj2: Attributes) { + if (Object.keys(obj1).length !== Object.keys(obj2).length) { + return false; + } + + for (const [k, v] of Object.entries(obj1)) { + const v2 = obj2[k]; + + if (Array.isArray(v)) { + if (!Array.isArray(v2) || v.length !== v2.length) { + return false; + } + + // arrays can only contain primitives, so simple equality checks are sufficient + for (let i = 0; i < v.length; i++) { + if (v[i] !== v2[i]) { + return false; + } + } + } else if (v !== v2) { + return false; + } + } + + return true; +} diff --git a/packages/opentelemetry-resources/src/entity.ts b/packages/opentelemetry-resources/src/entity.ts new file mode 100644 index 00000000000..f05950037ad --- /dev/null +++ b/packages/opentelemetry-resources/src/entity.ts @@ -0,0 +1,26 @@ +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Attributes } from '@opentelemetry/api'; + +export interface Entity { + type: string; + identifier: Attributes; + attributes: Attributes; + schemaUrl?: string; + asyncAttributesPending: boolean; + waitForAsyncAttributes(): Promise; +} diff --git a/packages/opentelemetry-resources/src/index.ts b/packages/opentelemetry-resources/src/index.ts index 6e957d2d88c..bd9747227e2 100644 --- a/packages/opentelemetry-resources/src/index.ts +++ b/packages/opentelemetry-resources/src/index.ts @@ -23,17 +23,19 @@ export { processDetector, serviceInstanceIdDetector, } from './detectors'; +export type { Entity } from './entity'; +export { defaultServiceName } from './platform'; export type { Resource } from './Resource'; export { - resourceFromAttributes, defaultResource, emptyResource, -} from './ResourceImpl'; -export { defaultServiceName } from './platform'; + resourceFromAttributes, + resourceFromDetectedResource, +} from './resource-impl'; export type { - ResourceDetector, DetectedResource, DetectedResourceAttributes, - RawResourceAttribute, MaybePromise, + RawResourceAttribute, + ResourceDetector, } from './types'; diff --git a/packages/opentelemetry-resources/src/ResourceImpl.ts b/packages/opentelemetry-resources/src/resource-impl.ts similarity index 65% rename from packages/opentelemetry-resources/src/ResourceImpl.ts rename to packages/opentelemetry-resources/src/resource-impl.ts index 88dd8c178fc..da0400bf9cf 100644 --- a/packages/opentelemetry-resources/src/ResourceImpl.ts +++ b/packages/opentelemetry-resources/src/resource-impl.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { Attributes, AttributeValue, diag } from '@opentelemetry/api'; +import { Attributes, diag } from '@opentelemetry/api'; import { SDK_INFO } from '@opentelemetry/core'; import { ATTR_SERVICE_NAME, @@ -27,10 +27,12 @@ import { defaultServiceName } from './platform'; import { DetectedResource, DetectedResourceAttributes, - MaybePromise, + EntityRef, RawResourceAttribute, } from './types'; import { isPromiseLike } from './utils'; +import { EntityImpl, mergeEntities } from './entity-impl'; +import { Entity } from './entity'; class ResourceImpl implements Resource { private _rawAttributes: RawResourceAttribute[]; @@ -38,39 +40,45 @@ class ResourceImpl implements Resource { private _memoizedAttributes?: Attributes; - static FromAttributeList( - attributes: [string, MaybePromise][] - ): Resource { - const res = new ResourceImpl({}); - res._rawAttributes = guardedRawAttributes(attributes); - res._asyncAttributesPending = - attributes.filter(([_, val]) => isPromiseLike(val)).length > 0; - return res; - } + private _entities: Entity[]; + private _entityRefs: EntityRef[]; - constructor( - /** - * A dictionary of attributes with string keys and values that provide - * information about the entity as numbers, strings or booleans - * TODO: Consider to add check/validation on attributes. - */ - resource: DetectedResource - ) { - const attributes = resource.attributes ?? {}; - this._rawAttributes = Object.entries(attributes).map(([k, v]) => { - if (isPromiseLike(v)) { + constructor(rawAttributes: RawResourceAttribute[], entities: Entity[]) { + this._rawAttributes = rawAttributes; + this._entities = entities; + + for (const attr of rawAttributes) { + if (isPromiseLike(attr[1])) { // side-effect this._asyncAttributesPending = true; } + } + + this._entityRefs = this._entities.map(entity => { + if (entity.asyncAttributesPending) { + this._asyncAttributesPending = true; + } - return [k, v]; + return { + type: entity.type, + identifyingAttributeKeys: Object.keys(entity.identifier), + descriptiveAttributeKeys: entity.attributes + ? Object.keys(entity.attributes) + : [], + }; }); this._rawAttributes = guardedRawAttributes(this._rawAttributes); } public get asyncAttributesPending(): boolean { - return this._asyncAttributesPending; + return ( + this._asyncAttributesPending || + this._entities.reduce( + (p, c) => p || c.asyncAttributesPending, + false + ) + ); } public async waitForAsyncAttributes(): Promise { @@ -83,6 +91,10 @@ class ResourceImpl implements Resource { this._rawAttributes[i] = [k, isPromiseLike(v) ? await v : v]; } + for (const e of this._entities) { + await e.waitForAsyncAttributes(); + } + this._asyncAttributesPending = false; } @@ -98,6 +110,20 @@ class ResourceImpl implements Resource { } const attrs: Attributes = {}; + + for (const e of this._entities) { + for (const [k, v] of Object.entries(e.identifier)) { + if (v != null) { + attrs[k] = v; + } + } + if (e.attributes) { + for (const [k, v] of Object.entries(e.attributes)) { + attrs[k] ??= v; + } + } + } + for (const [k, v] of this._rawAttributes) { if (isPromiseLike(v)) { diag.debug(`Unsettled resource attribute ${k} skipped`); @@ -116,6 +142,14 @@ class ResourceImpl implements Resource { return attrs; } + public get entityRefs(): EntityRef[] { + return this._entityRefs; + } + + public get entities(): Entity[] { + return this._entities; + } + public getRawAttributes(): RawResourceAttribute[] { return this._rawAttributes; } @@ -125,23 +159,29 @@ class ResourceImpl implements Resource { // Order is important // Spec states incoming attributes override existing attributes - return ResourceImpl.FromAttributeList([ - ...resource.getRawAttributes(), - ...this.getRawAttributes(), - ]); + const attrs = [...resource.getRawAttributes(), ...this.getRawAttributes()]; + + // TODO order opposite? + const entities = mergeEntities(...this._entities, ...resource.entities); + + return new ResourceImpl(attrs, entities); } } export function resourceFromAttributes( attributes: DetectedResourceAttributes ): Resource { - return ResourceImpl.FromAttributeList(Object.entries(attributes)); + return new ResourceImpl(Object.entries(attributes), []); } export function resourceFromDetectedResource( detectedResource: DetectedResource ): Resource { - return new ResourceImpl(detectedResource); + const entities = (detectedResource.entities ?? []).map( + e => new EntityImpl(e) + ); + const rawAttributes = Object.entries(detectedResource.attributes ?? {}); + return new ResourceImpl(rawAttributes, entities); } export function emptyResource(): Resource { diff --git a/packages/opentelemetry-resources/src/types.ts b/packages/opentelemetry-resources/src/types.ts index 427ef147b4e..11cc43e4d03 100644 --- a/packages/opentelemetry-resources/src/types.ts +++ b/packages/opentelemetry-resources/src/types.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { AttributeValue } from '@opentelemetry/api'; +import { Attributes, AttributeValue } from '@opentelemetry/api'; import { ResourceDetectionConfig } from './config'; /** @@ -36,13 +36,33 @@ export type DetectedResource = { * Detected resource attributes. */ attributes?: DetectedResourceAttributes; + + /** + * Detected entities + */ + entities?: DetectedEntity[]; +}; + +export type EntityRef = { + type: string; + identifyingAttributeKeys: string[]; + descriptiveAttributeKeys: string[]; +}; + +export type DetectedEntity = { + type: string; + schemaUrl?: string; + identifier: Attributes; + attributes?: DetectedResourceAttributes; }; /** * An object representing detected resource attributes. * Value may be {@link AttributeValue}s, a promise to an {@link AttributeValue}, or undefined. */ -type DetectedResourceAttributeValue = MaybePromise; +export type DetectedResourceAttributeValue = MaybePromise< + AttributeValue | undefined +>; /** * An object representing detected resource attributes. diff --git a/packages/opentelemetry-resources/test/detectors/browser/ProcessDetector.test.ts b/packages/opentelemetry-resources/test/detectors/browser/ProcessDetector.test.ts index 38e4b3ec3e2..f12ea8fdd15 100644 --- a/packages/opentelemetry-resources/test/detectors/browser/ProcessDetector.test.ts +++ b/packages/opentelemetry-resources/test/detectors/browser/ProcessDetector.test.ts @@ -17,7 +17,7 @@ import * as sinon from 'sinon'; import { processDetector } from '../../../src'; import { describeBrowser } from '../../util'; import { assertEmptyResource } from '../../util/resource-assertions'; -import { resourceFromDetectedResource } from '../../../src/ResourceImpl'; +import { resourceFromDetectedResource } from '../../../src/resource-impl'; describeBrowser('processDetector() on web browser', () => { afterEach(() => { diff --git a/packages/opentelemetry-resources/test/detectors/node/EnvDetector.test.ts b/packages/opentelemetry-resources/test/detectors/node/EnvDetector.test.ts index 229579a6943..e2140316490 100644 --- a/packages/opentelemetry-resources/test/detectors/node/EnvDetector.test.ts +++ b/packages/opentelemetry-resources/test/detectors/node/EnvDetector.test.ts @@ -15,7 +15,7 @@ */ import { envDetector } from '../../../src'; -import { resourceFromDetectedResource } from '../../../src/ResourceImpl'; +import { resourceFromDetectedResource } from '../../../src/resource-impl'; import { describeNode } from '../../util'; import { assertEmptyResource, diff --git a/packages/opentelemetry-resources/test/detectors/node/HostDetector.test.ts b/packages/opentelemetry-resources/test/detectors/node/HostDetector.test.ts index 0e820279e89..c197bbb72da 100644 --- a/packages/opentelemetry-resources/test/detectors/node/HostDetector.test.ts +++ b/packages/opentelemetry-resources/test/detectors/node/HostDetector.test.ts @@ -17,7 +17,7 @@ import * as assert from 'assert'; import * as sinon from 'sinon'; import { hostDetector } from '../../../src'; -import { resourceFromDetectedResource } from '../../../src/ResourceImpl'; +import { resourceFromDetectedResource } from '../../../src/resource-impl'; import { describeNode } from '../../util'; import { ATTR_HOST_ARCH, diff --git a/packages/sdk-metrics/test/export/PeriodicExportingMetricReader.test.ts b/packages/sdk-metrics/test/export/PeriodicExportingMetricReader.test.ts index 1874a5edf4c..89eaad1fd21 100644 --- a/packages/sdk-metrics/test/export/PeriodicExportingMetricReader.test.ts +++ b/packages/sdk-metrics/test/export/PeriodicExportingMetricReader.test.ts @@ -168,6 +168,7 @@ describe('PeriodicExportingMetricReader', () => { const resourceMetrics: ResourceMetrics = { resource: { attributes: {}, + entities: [], merge: sinon.stub(), asyncAttributesPending: true, // ensure we try to await async attributes waitForAsyncAttributes: waitForAsyncAttributesStub, // resolve when awaited @@ -380,6 +381,7 @@ describe('PeriodicExportingMetricReader', () => { const resourceMetrics: ResourceMetrics = { resource: { attributes: {}, + entities: [], merge: sinon.stub(), asyncAttributesPending: true, // ensure we try to await async attributes waitForAsyncAttributes: waitForAsyncAttributesStub, // resolve when awaited @@ -426,6 +428,7 @@ describe('PeriodicExportingMetricReader', () => { const resourceMetrics: ResourceMetrics = { resource: { attributes: {}, + entities: [], merge: sinon.stub(), asyncAttributesPending: true, // ensure we try to await async attributes waitForAsyncAttributes: waitForAsyncAttributesStub, // reject when awaited