Compare commits
No commits in common. "4cd1b53461129a903b9deba6afb8f9ab19e336d2" and "a072535050c84c30719cfe258333940750240614" have entirely different histories.
4cd1b53461
...
a072535050
|
@ -546,9 +546,7 @@ class UtapiClient {
|
||||||
if (this._isCounterEnabled(counterAction)) {
|
if (this._isCounterEnabled(counterAction)) {
|
||||||
cmds.push(['incr', generateKey(p, counterAction, timestamp)]);
|
cmds.push(['incr', generateKey(p, counterAction, timestamp)]);
|
||||||
}
|
}
|
||||||
cmds.push(['zrangebyscore', generateStateKey(p, 'storageUtilized'), timestamp, timestamp]);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return this.ds.batch(cmds, (err, results) => {
|
return this.ds.batch(cmds, (err, results) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
log.error('error pushing metric', {
|
log.error('error pushing metric', {
|
||||||
|
@ -582,48 +580,13 @@ class UtapiClient {
|
||||||
// empty.
|
// empty.
|
||||||
actionCounter = Number.isNaN(actionCounter)
|
actionCounter = Number.isNaN(actionCounter)
|
||||||
|| actionCounter < 0 ? 1 : actionCounter;
|
|| actionCounter < 0 ? 1 : actionCounter;
|
||||||
|
|
||||||
if (Number.isInteger(params.byteLength)) {
|
|
||||||
/* byteLength is passed in from cloudserver under the follow conditions:
|
|
||||||
* - bucket versioning is suspended
|
|
||||||
* - object version id is null
|
|
||||||
* - the content length of the object exists
|
|
||||||
* In this case, the master key is deleted and replaced with a delete marker.
|
|
||||||
* The decrement accounts for the deletion of the master key when utapi reports
|
|
||||||
* on the number of objects.
|
|
||||||
*/
|
|
||||||
actionCounter -= 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
const key = generateStateKey(p, 'numberOfObjects');
|
const key = generateStateKey(p, 'numberOfObjects');
|
||||||
|
|
||||||
const byteArr = results[index + commandsGroupSize - 1][1];
|
|
||||||
const oldByteLength = byteArr ? parseInt(byteArr[0], 10) : 0;
|
|
||||||
const newByteLength = member.serialize(Math.max(0, oldByteLength - params.byteLength));
|
|
||||||
|
|
||||||
cmds2.push(
|
cmds2.push(
|
||||||
['zremrangebyscore', key, timestamp, timestamp],
|
['zremrangebyscore', key, timestamp, timestamp],
|
||||||
['zadd', key, timestamp, member.serialize(actionCounter)],
|
['zadd', key, timestamp, member.serialize(actionCounter)],
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
if (Number.isInteger(params.byteLength)) {
|
|
||||||
cmds2.push(
|
|
||||||
['decr', generateCounter(p, 'numberOfObjectsCounter')],
|
|
||||||
['decrby', generateCounter(p, 'storageUtilizedCounter'), params.byteLength],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (byteArr) {
|
|
||||||
cmds2.push(
|
|
||||||
['zremrangebyscore', generateStateKey(p, 'storageUtilized'), timestamp, timestamp],
|
|
||||||
['zadd', generateStateKey(p, 'storageUtilized'), timestamp, newByteLength],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (noErr) {
|
if (noErr) {
|
||||||
return this.ds.batch(cmds2, cb);
|
return this.ds.batch(cmds2, cb);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=16"
|
"node": ">=16"
|
||||||
},
|
},
|
||||||
"version": "7.10.7-1",
|
"version": "7.10.7",
|
||||||
"description": "API for tracking resource utilization and reporting metrics",
|
"description": "API for tracking resource utilization and reporting metrics",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|
|
@ -247,11 +247,7 @@ tests.forEach(test => {
|
||||||
c.setDataStore(ds);
|
c.setDataStore(ds);
|
||||||
c.pushMetric(metric, REQUID, params, () => {
|
c.pushMetric(metric, REQUID, params, () => {
|
||||||
deserializeMemoryBackend(memoryBackend.data);
|
deserializeMemoryBackend(memoryBackend.data);
|
||||||
Object.keys(expected).forEach(key => {
|
assert.deepStrictEqual(memoryBackend.data, expected);
|
||||||
if (memoryBackend.data[key]) {
|
|
||||||
assert.deepStrictEqual(memoryBackend.data[key], expected[key]);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return cb();
|
return cb();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -494,7 +490,6 @@ tests.forEach(test => {
|
||||||
storageUtilized: '1024',
|
storageUtilized: '1024',
|
||||||
numberOfObjects: '1',
|
numberOfObjects: '1',
|
||||||
};
|
};
|
||||||
|
|
||||||
setMockData(data, timestamp, () => {
|
setMockData(data, timestamp, () => {
|
||||||
testMetric('deleteObject', params, expected, done);
|
testMetric('deleteObject', params, expected, done);
|
||||||
});
|
});
|
||||||
|
@ -672,40 +667,6 @@ tests.forEach(test => {
|
||||||
testMetric('putDeleteMarkerObject', metricTypes, expected, done);
|
testMetric('putDeleteMarkerObject', metricTypes, expected, done);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should push putDeleteMarkerObject metrics and have correct bytes and number of objects', done => {
|
|
||||||
const expected = buildExpectedResult({
|
|
||||||
action: 'PutObject',
|
|
||||||
numberOfObjects: '1',
|
|
||||||
});
|
|
||||||
const metrics = {
|
|
||||||
bucket: '5741-repro',
|
|
||||||
keys: ['foo2'],
|
|
||||||
byteLength: undefined,
|
|
||||||
newByteLength: 258,
|
|
||||||
oldByteLength: null,
|
|
||||||
numberOfObjects: 1,
|
|
||||||
accountId: '79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be',
|
|
||||||
userId: undefined,
|
|
||||||
};
|
|
||||||
testMetric('putObject', Object.assign(metrics, metricTypes), expected, () => {
|
|
||||||
const expected = buildExpectedResult({
|
|
||||||
action: 'DeleteObject',
|
|
||||||
numberOfObjects: '1',
|
|
||||||
});
|
|
||||||
const metrics2 = {
|
|
||||||
bucket: '5741-repro',
|
|
||||||
keys: ['foo2'],
|
|
||||||
byteLength: 258,
|
|
||||||
newByteLength: undefined,
|
|
||||||
oldByteLength: undefined,
|
|
||||||
numberOfObjects: undefined,
|
|
||||||
accountId: '79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be',
|
|
||||||
userId: undefined,
|
|
||||||
};
|
|
||||||
testMetric('putDeleteMarkerObject', Object.assign(metrics2, metricTypes), expected, done);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should push putBucketReplication metrics', done => {
|
it('should push putBucketReplication metrics', done => {
|
||||||
const expected = buildExpectedResult({
|
const expected = buildExpectedResult({
|
||||||
action: 'PutBucketReplication',
|
action: 'PutBucketReplication',
|
||||||
|
@ -805,4 +766,3 @@ tests.forEach(test => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue