[APM Config] Allow API Key environment var (#163153)

This commit is contained in:
Alejandro Fernández Haro 2023-08-21 23:39:56 +02:00 committed by GitHub
parent 8a6dfb825f
commit 05a8ce13d7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 1 deletions

View file

@ -106,4 +106,4 @@ Set the following environment variables to enable APM:
* ELASTIC_APM_ACTIVE
* ELASTIC_APM_SERVER_URL
* ELASTIC_APM_SECRET_TOKEN
* ELASTIC_APM_SECRET_TOKEN or ELASTIC_APM_API_KEY

View file

@ -152,6 +152,7 @@ describe('ApmConfiguration', () => {
beforeEach(() => {
delete process.env.ELASTIC_APM_ENVIRONMENT;
delete process.env.ELASTIC_APM_SECRET_TOKEN;
delete process.env.ELASTIC_APM_API_KEY;
delete process.env.ELASTIC_APM_SERVER_URL;
delete process.env.NODE_ENV;
});
@ -225,6 +226,15 @@ describe('ApmConfiguration', () => {
expect(serverConfig).toHaveProperty('secretToken', process.env.ELASTIC_APM_SECRET_TOKEN);
expect(serverConfig).toHaveProperty('serverUrl', process.env.ELASTIC_APM_SERVER_URL);
});
it('uses apiKey instead of secret token if env var is set', () => {
process.env.ELASTIC_APM_API_KEY = 'banana';
process.env.ELASTIC_APM_SERVER_URL = 'http://banana.com/';
const config = new ApmConfiguration(mockedRootDir, {}, false);
const serverConfig = config.getConfig('serviceName');
expect(serverConfig).toHaveProperty('apiKey', process.env.ELASTIC_APM_API_KEY);
expect(serverConfig).toHaveProperty('serverUrl', process.env.ELASTIC_APM_SERVER_URL);
});
});
describe('contextPropagationOnly', () => {

View file

@ -147,6 +147,10 @@ export class ApmConfiguration {
config.secretToken = process.env.ELASTIC_APM_SECRET_TOKEN;
}
if (process.env.ELASTIC_APM_API_KEY) {
config.apiKey = process.env.ELASTIC_APM_API_KEY;
}
if (process.env.ELASTIC_APM_GLOBAL_LABELS) {
config.globalLabels = Object.fromEntries(
process.env.ELASTIC_APM_GLOBAL_LABELS.split(',').map((p) => {