Compare commits
26 Commits
Author | SHA1 | Date | |
---|---|---|---|
78f2e41b14 | |||
1d8cf2444f | |||
cbad145304 | |||
1308f16699 | |||
c71cff4011 | |||
75aecdb064 | |||
faf736f353 | |||
dca54899bf | |||
7dac427f00 | |||
e451c38f32 | |||
540e5be2fa | |||
7d29f88356 | |||
9d81f059fe | |||
52cdf6f9fe | |||
1339db1adf | |||
2b42bd59c5 | |||
4cd9ce8510 | |||
cf2620bd41 | |||
1d1a438f8e | |||
aec150a240 | |||
958a5d4db5 | |||
3a2af6634d | |||
d89b610006 | |||
56bc5dfcdd | |||
f49062d247 | |||
bd45505c6a |
@ -19,23 +19,35 @@ mirror:
|
||||
stage: security
|
||||
script:
|
||||
- npmci git mirror
|
||||
only:
|
||||
- tags
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
- notpriv
|
||||
|
||||
audit:
|
||||
auditProductionDependencies:
|
||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||
stage: security
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci command npm install --production --ignore-scripts
|
||||
- npmci command npm config set registry https://registry.npmjs.org
|
||||
- npmci command npm audit --audit-level=high --only=prod --production
|
||||
tags:
|
||||
- docker
|
||||
|
||||
auditDevDependencies:
|
||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||
stage: security
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci command npm install --ignore-scripts
|
||||
- npmci command npm config set registry https://registry.npmjs.org
|
||||
- npmci command npm audit --audit-level=high
|
||||
- npmci command npm audit --audit-level=high --only=dev
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
- notpriv
|
||||
allow_failure: true
|
||||
|
||||
# ====================
|
||||
# test stage
|
||||
@ -50,9 +62,7 @@ testStable:
|
||||
- npmci npm test
|
||||
coverage: /\d+.?\d+?\%\s*coverage/
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
- priv
|
||||
|
||||
testBuild:
|
||||
stage: test
|
||||
@ -63,9 +73,7 @@ testBuild:
|
||||
- npmci command npm run build
|
||||
coverage: /\d+.?\d+?\%\s*coverage/
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
- notpriv
|
||||
|
||||
release:
|
||||
stage: release
|
||||
@ -85,6 +93,8 @@ release:
|
||||
codequality:
|
||||
stage: metadata
|
||||
allow_failure: true
|
||||
only:
|
||||
- tags
|
||||
script:
|
||||
- npmci command npm install -g tslint typescript
|
||||
- npmci npm prepare
|
||||
|
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@ -15,7 +15,7 @@
|
||||
"properties": {
|
||||
"projectType": {
|
||||
"type": "string",
|
||||
"enum": ["website", "element", "service", "npm"]
|
||||
"enum": ["website", "element", "service", "npm", "wcc"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
24268
package-lock.json
generated
24268
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
30
package.json
30
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@mojoio/logdna",
|
||||
"version": "1.0.26",
|
||||
"version": "1.0.39",
|
||||
"private": false,
|
||||
"description": "an unoffical package for the logdna api",
|
||||
"main": "dist_ts/index.js",
|
||||
@ -9,24 +9,23 @@
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"test": "(tstest test/)",
|
||||
"build": "(tsbuild --web)",
|
||||
"format": "(gitzone format)"
|
||||
"build": "(tsbuild --web)"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@gitzone/tsbuild": "^2.1.24",
|
||||
"@gitzone/tstest": "^1.0.33",
|
||||
"@pushrocks/qenv": "^4.0.6",
|
||||
"@pushrocks/tapbundle": "^3.2.1",
|
||||
"@types/node": "^14.0.9",
|
||||
"tslint": "^6.1.2",
|
||||
"@gitzone/tsbuild": "^2.1.25",
|
||||
"@gitzone/tstest": "^1.0.54",
|
||||
"@pushrocks/qenv": "^4.0.10",
|
||||
"@pushrocks/tapbundle": "^3.2.14",
|
||||
"@types/node": "^14.0.11",
|
||||
"tslint": "^6.1.3",
|
||||
"tslint-config-prettier": "^1.18.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@pushrocks/lik": "^4.0.13",
|
||||
"@pushrocks/smartlog-interfaces": "^2.0.9",
|
||||
"@pushrocks/smartrequest": "^1.1.47",
|
||||
"@pushrocks/smartstring": "^3.0.18",
|
||||
"@pushrocks/taskbuffer": "^2.1.1"
|
||||
"@pushrocks/lik": "^4.0.20",
|
||||
"@pushrocks/smartlog-interfaces": "^2.0.22",
|
||||
"@pushrocks/smartrequest": "^1.1.52",
|
||||
"@pushrocks/smartstring": "^3.0.24",
|
||||
"@pushrocks/taskbuffer": "^2.1.13"
|
||||
},
|
||||
"files": [
|
||||
"ts/**/*",
|
||||
@ -39,5 +38,8 @@
|
||||
"cli.js",
|
||||
"npmextra.json",
|
||||
"readme.md"
|
||||
],
|
||||
"browserslist": [
|
||||
"last 1 chrome versions"
|
||||
]
|
||||
}
|
||||
|
21
readme.md
21
readme.md
@ -27,11 +27,12 @@ Platform support | [;
|
||||
@ -68,14 +69,6 @@ logDnaAccount.sendSmartlogPackage(smartlogPackage);
|
||||
// most of the above funtions return promises should you want to wait for a log to be fully sent
|
||||
```
|
||||
|
||||
For further information read the linked docs at the top of this README.
|
||||
|
||||
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
|
||||
> | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
|
||||
|
||||
[](https://mojo.io)
|
||||
|
||||
|
||||
## Contribution
|
||||
|
||||
We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :)
|
||||
|
32
test/test.ts
32
test/test.ts
@ -24,9 +24,13 @@ tap.test('should create a standard log message', async () => {
|
||||
containerName: 'ci-mojoio-logdna',
|
||||
environment: 'test',
|
||||
runtime: 'node',
|
||||
zone: 'shipzone'
|
||||
zone: 'shipzone',
|
||||
},
|
||||
message: 'this is an awesome log message sent by the tapbundle test'
|
||||
correlation: {
|
||||
id: '123',
|
||||
type: 'none',
|
||||
},
|
||||
message: 'this is an awesome log message sent by the tapbundle test',
|
||||
});
|
||||
});
|
||||
|
||||
@ -47,9 +51,13 @@ tap.test('should send in order', async () => {
|
||||
containerName: 'ci-mojoio-logdna',
|
||||
environment: 'test',
|
||||
runtime: 'node',
|
||||
zone: 'shipzone'
|
||||
zone: 'shipzone',
|
||||
},
|
||||
message: `this is an awesome log message sent by the tapbundle test #${i}`,
|
||||
correlation: {
|
||||
id: '123',
|
||||
type: 'none',
|
||||
},
|
||||
message: `this is an awesome log message sent by the tapbundle test #${i}`
|
||||
};
|
||||
testLogDnaAccount.sendSmartlogPackage(testSmartlogMessage);
|
||||
i++;
|
||||
@ -65,9 +73,13 @@ tap.test('should send in order', async () => {
|
||||
containerName: 'ci-mojoio-logdna',
|
||||
environment: 'test',
|
||||
runtime: 'node',
|
||||
zone: 'shipzone'
|
||||
zone: 'shipzone',
|
||||
},
|
||||
message: `this is an awesome log message sent by the tapbundle test #${i}`
|
||||
correlation: {
|
||||
id: '123',
|
||||
type: 'none',
|
||||
},
|
||||
message: `this is an awesome log message sent by the tapbundle test #${i}`,
|
||||
};
|
||||
testLogDnaAccount.sendSmartlogPackage(testSmartlogMessage2);
|
||||
|
||||
@ -81,9 +93,13 @@ tap.test('should send in order', async () => {
|
||||
containerName: 'ci-mojoio-logdna',
|
||||
environment: 'test',
|
||||
runtime: 'node',
|
||||
zone: 'shipzone'
|
||||
zone: 'shipzone',
|
||||
},
|
||||
message: `this is an awesome log message sent by the tapbundle test #${i}`
|
||||
correlation: {
|
||||
id: '123',
|
||||
type: 'none',
|
||||
},
|
||||
message: `this is an awesome log message sent by the tapbundle test #${i}`,
|
||||
};
|
||||
testLogDnaAccount.sendSmartlogPackage(testSmartlogMessage3);
|
||||
});
|
||||
|
@ -25,7 +25,7 @@ export class LogAggregator {
|
||||
}
|
||||
|
||||
public addLog(urlIdentifierArg: string, logLineArg: any) {
|
||||
let existinglogCandidate = this.logObjectMap.find(logCandidate => {
|
||||
let existinglogCandidate = this.logObjectMap.find((logCandidate) => {
|
||||
return logCandidate.urlIdentifier === urlIdentifierArg;
|
||||
});
|
||||
if (!existinglogCandidate) {
|
||||
@ -41,18 +41,16 @@ export class LogAggregator {
|
||||
private async sendAggregatedLogs(logCandidate: ILogCandidate) {
|
||||
this.logObjectMap.remove(logCandidate);
|
||||
// lets post the message to logdna
|
||||
const response = await plugins.smartrequest.postJson(
|
||||
`${this.baseUrl}${logCandidate.urlIdentifier}&now=${Date.now()}`,
|
||||
{
|
||||
headers: {
|
||||
Authorization: this.createBasicAuth(),
|
||||
charset: 'UTF-8'
|
||||
},
|
||||
requestBody: {
|
||||
lines: logCandidate.logLines
|
||||
}
|
||||
}
|
||||
);
|
||||
const url = `${this.baseUrl}${logCandidate.urlIdentifier}&now=${Date.now()}`;
|
||||
const response = await plugins.smartrequest.postJson(url, {
|
||||
headers: {
|
||||
Authorization: this.createBasicAuth(),
|
||||
charset: 'UTF-8',
|
||||
},
|
||||
requestBody: {
|
||||
lines: logCandidate.logLines,
|
||||
},
|
||||
});
|
||||
if (response.statusCode !== 200) {
|
||||
console.log(response.body);
|
||||
}
|
||||
|
@ -71,7 +71,9 @@ export class LogdnaMessage {
|
||||
line: smartlogPackageArg.message,
|
||||
meta: {
|
||||
...smartlogPackageArg.context,
|
||||
logType: smartlogPackageArg.type
|
||||
logType: smartlogPackageArg.type,
|
||||
correlation: smartlogPackageArg.correlation,
|
||||
data: smartlogPackageArg.data || {},
|
||||
},
|
||||
env: smartlogPackageArg.context.environment,
|
||||
hostname: smartlogPackageArg.context.zone,
|
||||
@ -84,7 +86,7 @@ export class LogdnaMessage {
|
||||
return tagArray;
|
||||
})(),
|
||||
ip: '0.0.0.0',
|
||||
mac: 'aa:aa:aa:aa:aa:aa'
|
||||
mac: 'aa:aa:aa:aa:aa:aa',
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -31,8 +31,13 @@ export class LogdnaAccount {
|
||||
const uriIp = euc(lm.options.ip);
|
||||
const uriTags = euc(
|
||||
(() => {
|
||||
let first = true;
|
||||
return lm.options.tags.reduce((reduced, newItem) => {
|
||||
return `${reduced},${newItem}`;
|
||||
if (first) {
|
||||
first = false;
|
||||
reduced = euc(reduced);
|
||||
}
|
||||
return `${reduced},${euc(newItem)}`;
|
||||
});
|
||||
})()
|
||||
);
|
||||
@ -46,7 +51,7 @@ export class LogdnaAccount {
|
||||
app: lm.options.app,
|
||||
level: lm.options.level,
|
||||
env: lm.options.env,
|
||||
meta: lm.options.meta
|
||||
meta: lm.options.meta,
|
||||
};
|
||||
|
||||
this.logAggregator.addLog(requestUrlWithParams, logLine);
|
||||
@ -64,9 +69,9 @@ export class LogdnaAccount {
|
||||
*/
|
||||
public get smartlogDestination(): ILogDestination {
|
||||
return {
|
||||
handleLog: logPackageArg => {
|
||||
handleLog: async (logPackageArg) => {
|
||||
this.sendSmartlogPackage(logPackageArg);
|
||||
}
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user