Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open Telemetry Issue in GCP App Engine #1332

Closed
BobLiu2046 opened this issue Jul 21, 2020 · 2 comments
Closed

Open Telemetry Issue in GCP App Engine #1332

BobLiu2046 opened this issue Jul 21, 2020 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@BobLiu2046
Copy link

Please answer these questions before submitting a bug report.

What version of OpenTelemetry are you using?

"@google-cloud/opentelemetry-cloud-trace-exporter": "^0.3.0",
"@opentelemetry/core": "^0.9.0",
"@opentelemetry/node": "^0.9.0",
"@opentelemetry/plugin-http": "^0.9.0",
"@opentelemetry/plugin-https": "^0.9.0",
"@opentelemetry/tracing": "^0.9.0",

What version of Node are you using?

10

What did you do?

We want to implement the open telemetry for our backend API which is hosted in GCP App Engine

We deployed the code [1] to our GCP dev and staging environments. It’s working fine, we can see the data in Cloud Trace Waterfall View, but it's not working in our perf environment. in perf environment we got the error messages below

could not load plugin @opentelemetry/plugin-express
could not load plugin @opentelemetry/plugin-grpc

Actually in our case, we don't need express and grpc plugins. However to fix this issue, we install those 2 plugins, the plugin missing issue is disappeared after the installation, but we got another error "You can only call end() on a span once"

From this link [2] the plugin missing is an open bug and we need to disable plugin-express and plugin-grpc [3] as a workaround. We make the same change and disable those 2 plugins, now the plugin missing issue is disappeared , but we still cannot see the data in Cloud Trace Waterfall View.

[1]
const { TraceExporter } = require('@google-cloud/opentelemetry-cloud-trace-exporter');
const { LogLevel } = require("@opentelemetry/core");
const { SimpleSpanProcessor, BatchSpanProcessor } = require("@opentelemetry/tracing");
const { NodeTracerProvider } = require("@opentelemetry/node");

// Create and configure NodeTracerProvider
const provider = new NodeTracerProvider({
logLevel: LogLevel.ERROR
});

// Initialize the provider
provider.register();

// Create an exporter for sending spans data
const exporter = new TraceExporter({
// If you are not in a GCP environment, you will need to provide your
// service account key here. See the Authentication section below.
});

// Configure a span processor for the tracer
provider.addSpanProcessor(new BatchSpanProcessor(exporter));

console.log("tracing initialized");

[2] #1124

[3]
const { TraceExporter } = require('@google-cloud/opentelemetry-cloud-trace-exporter');
const { LogLevel } = require("@opentelemetry/core");
const { SimpleSpanProcessor, BatchSpanProcessor } = require("@opentelemetry/tracing");
const { NodeTracerProvider } = require("@opentelemetry/node");

// Create and configure NodeTracerProvider
const provider = new NodeTracerProvider({
logLevel: LogLevel.ERROR,
plugins: {
express: {
enabled: false,
path: '@opentelemetry/plugin-express',
},
grpc: {
enabled: false,
path: '@opentelemetry/plugin-grpc',
},
}
});

// Initialize the provider
provider.register();

// Create an exporter for sending spans data
const exporter = new TraceExporter({
// If you are not in a GCP environment, you will need to provide your
// service account key here. See the Authentication section below.
});

// Configure a span processor for the tracer
provider.addSpanProcessor(new BatchSpanProcessor(exporter));

console.log("tracing initialized");

@BobLiu2046 BobLiu2046 added the bug Something isn't working label Jul 21, 2020
@vmarchaud
Copy link
Member

vmarchaud commented Sep 4, 2020

could not load plugin @opentelemetry/plugin-express
could not load plugin @opentelemetry/plugin-grpc

Those are actually warnings because you didn't install the plugins, you can ignore this.

You can only call end() on a span once

This problem is about the express plugin, an issue is ongoing here

About the general export issue you reported, i think the problem might comes from the stackdriver exporter itself, you could give a ConsoleLogger to the stackdriver exporter and set its verbosity to DEBUG to get more insight.

@vmarchaud
Copy link
Member

I'll go ahead and close this since i don't believe the problem comes from the the sdk itself, feel free to reopen if you believe its not the case.

pichlermarc pushed a commit to dynatrace-oss-contrib/opentelemetry-js that referenced this issue Dec 15, 2023
open-telemetry#1332)

* test(instrumentation-fs): add failing test for bug

* fix(instrumentation-fs): allow .native fs funcs

* refactor(instrumentation-fs): indexFs

change indexFs return types and object properties of return

* refactor(instr-fs): use string for two level fns

previously ['realpath', 'native'] now 'realpath.native'

also moved exported yet private functions to utils file

fixed tests to follow these changes

refactored patching code to function with added comment

* refactor(instrumentation-fs): remove memberToDisplayName

* refactor(instrumentation-fs): simplify splitTwoLevels signature

* fix(instrumentation-fs): lint

* fix(instrumentation-fs): lint (typeof fs)

* fix(instrumentation-fs): test types

* chore: fix compile and lint

* fix(fs): exclude undefined in generic type

* test(fs): skip fs functions in node14 which were added later

---------

Co-authored-by: Amir Blum <[email protected]>
Co-authored-by: Amir Blum <[email protected]>
pichlermarc pushed a commit to dynatrace-oss-contrib/opentelemetry-js that referenced this issue Dec 15, 2023
…elemetry#1375)

* fix(instrumentation-fs): fix instrumentation of `fs/promises`

* Revert "fix(instrumentation-fs): fix instrumentation of `fs/promises`"

This reverts commit 90d9f0d68960ef647bbe5b7347ad6c97f936651e.

* fix(instrumentation-fs): fix instrumentation of `fs/promises`

* chore(instrumentation-fs): fix lint error

* chore(instrumentation-fs): hard-code `R_OK` value for node 14

* chore(instrumentation-fs): fix supported version for `fs/promises`

* chore(instrumentation-fs): incorporate changes from open-telemetry#1332

* chore(instrumentation-fs): consolidate common test utilities

---------

Co-authored-by: Haddas Bronfman <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants