I must make two honest confessions to you, my Christian and Jewish brothers. First, I must confess that over the past few years I have been gravely disappointed with the white moderate. I have almost reached the regrettable conclusion that the Negro's great stumbling block in his stride toward freedom is not the White Citizen's Counciler or the Ku Klux Klanner, but the white moderate, who is more devoted to "order" than to justice; who prefers a negative peace which is the absence of tension to a positive peace which is the presence of justice; who constantly says: "I agree with you in the goal you seek, but I cannot agree with your methods of direct action"; who paternalistically believes he can set the timetable for another man's freedom; who lives by a mythical concept of time and who constantly advises the Negro to wait for a "more convenient season." Shallow understanding from people of good will is more frustrating than absolute misunderstanding from people of ill will. Lukewarm acceptance is much more
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const app = express(); | |
app.get('/hello', (req, res) => { | |
// access the span created by express instrumentation | |
span = tracer.getCurrentSpan(); | |
// add an attribute to segment your data by projectID | |
span.setAttribute('projectID', '123'); | |
// log an event and include some structured data. | |
span.addEvent('setting timeout', { sleep: 300 }); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const opentelemetry = require('@opentelemetry/api'); | |
const express = require('express'); | |
// create a tracer and name it after your package | |
const tracer = opentelemetry.trace.getTracer('@otel-node-basics/server'); | |
const app = express(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const { lightstep } = require('lightstep-opentelemetry-launcher-node'); | |
const sdk = lightstep.configureOpenTelemetry({ | |
accessToken: '<ACCESS_TOKEN>', | |
serviceName: 'hello-server-1', | |
serviceVersion: 'v1.2.3', | |
propagators: 'tracecontext,b3', | |
}); | |
sdk.start().then(() => { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const http = require('http'); | |
function makeRequest() { | |
http.get({ | |
host: 'localhost', | |
port: 9000, | |
path: '/hello', | |
}, (response) => { | |
const body = []; | |
response.on('data', (chunk) => body.push(chunk)); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const express = require('express'); | |
const app = express(); | |
app.get('/hello', (req, res) => { | |
res.status(200).send('Hello World'); | |
}); | |
app.listen(9000); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func main() { | |
// configure headers | |
headers := map[string]string{ | |
"lightstep-access-token": "ls-access-token", | |
} | |
// configure TLS credentials | |
secureOption := otlp.WithTLSCredentials(credentials.NewClientTLSFromCert()) | |
//configure an OTLP exporter | |
exporter, err := otlp.NewExporter( |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import "github.com/lightstep/otel-launcher-go/launcher" | |
func main() { | |
otel := launcher.ConfigureOpentelemetry( | |
launcher.WithServiceName("robochef9000"), | |
launcher.WithServiceVersion("v1.2.3"), | |
launcher.WithAccessToken("ls-access-token"), | |
) | |
defer otel.Shutdown() | |
} |
This Release Candidate proposes an approach to managed Span propagation without enforcing Span lifetime handling through (in-code) reference counting.
- Decouple active Span propagation from Span.finish().
- Remove ActiveSpan/ActiveSpanManager reference counting.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package cell | |
import "io" | |
type Client interface { | |
Query(QueryRequest) (QueryResponse, error) | |
Allocate(AllocationRequest) (AllocationResponse, error) | |
Run(RunRequest) (RunResponse, error) | |
Stop(StopRequest) (StopResponse, error) | |
Delete(DeleteRequest) (DeleteResponse, error) |