iguazio.dashboard-controls 1.2.3 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/js/iguazio.dashboard-controls.js +6350 -6332
- package/dist/less/iguazio.dashboard-controls.less +1490 -1490
- package/package.json +1 -1
- package/src/igz_controls/components/log-table-row/log-table-row.component.js +11 -4
- package/src/igz_controls/components/log-table-row/log-table-row.tpl.html +2 -2
- package/src/igz_controls/services/control-panel-logs-data.service.js +35 -26
- package/src/nuclio/functions/version/version-execution-log/version-execution-log.component.js +2 -1
- package/src/nuclio/functions/version/version-execution-log/version-execution-log.less +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iguazio.dashboard-controls",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.5",
|
|
4
4
|
"main": "dist/js/iguazio.dashboard-controls.js",
|
|
5
5
|
"description": "Collection of resources (such as CSS styles, fonts and images) and AngularJs 1.x components and services to share among different Iguazio repos.",
|
|
6
6
|
"repository": {
|
|
@@ -31,6 +31,7 @@ such restriction.
|
|
|
31
31
|
|
|
32
32
|
ctrl.getLogLevel = getLogLevel;
|
|
33
33
|
ctrl.getLogName = getLogName;
|
|
34
|
+
ctrl.getLogTrimmedName = getLogTrimmedName;
|
|
34
35
|
|
|
35
36
|
//
|
|
36
37
|
// Public methods
|
|
@@ -45,13 +46,19 @@ such restriction.
|
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
/**
|
|
48
|
-
* Get log name
|
|
49
|
-
* @returns {string} the log name
|
|
49
|
+
* Get log full name
|
|
50
|
+
* @returns {string} the log name
|
|
50
51
|
*/
|
|
51
52
|
function getLogName() {
|
|
52
|
-
|
|
53
|
+
return lodash.get(ctrl.entryItem, 'kubernetes.pod.name', lodash.get(ctrl.entryItem, 'name', ''));
|
|
54
|
+
}
|
|
53
55
|
|
|
54
|
-
|
|
56
|
+
/**
|
|
57
|
+
* Get log trimmed name display value
|
|
58
|
+
* @returns {string} the log name display value
|
|
59
|
+
*/
|
|
60
|
+
function getLogTrimmedName() {
|
|
61
|
+
return lodash.padEnd(getLogName().substring(0, 25), 25);
|
|
55
62
|
}
|
|
56
63
|
}
|
|
57
64
|
}());
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
<div class="log-entry">
|
|
4
4
|
<span class="log-entry-time">{{$ctrl.entryItem['@timestamp'] | date : 'yy-MM-dd HH:mm:ss.sss' }}</span>
|
|
5
5
|
<span class="log-entry-name"
|
|
6
|
-
data-uib-tooltip="{{$ctrl.
|
|
6
|
+
data-uib-tooltip="{{$ctrl.getLogName()}}"
|
|
7
7
|
data-tooltip-placement="top"
|
|
8
8
|
data-tooltip-popup-delay="200"
|
|
9
|
-
data-tooltip-append-to-body="true"> {{$ctrl.
|
|
9
|
+
data-tooltip-append-to-body="true"> {{$ctrl.getLogTrimmedName()}}</span>
|
|
10
10
|
<span class="log-entry-level-{{$ctrl.entryItem.level.toLowerCase()}}"
|
|
11
11
|
data-ng-if="$ctrl.entryItem.level"> ({{$ctrl.getLogLevel()}})</span>
|
|
12
12
|
<span class="log-entry-message"> {{$ctrl.entryItem.message}}</span>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
angular.module('iguazio.dashboard-controls')
|
|
5
5
|
.factory('ControlPanelLogsDataService', ControlPanelLogsDataService);
|
|
6
6
|
|
|
7
|
-
function ControlPanelLogsDataService($q, lodash, ElasticsearchService
|
|
7
|
+
function ControlPanelLogsDataService($q, lodash, ElasticsearchService) {
|
|
8
8
|
return {
|
|
9
9
|
collectLogs: collectLogs,
|
|
10
10
|
entriesPaginated: search,
|
|
@@ -146,7 +146,6 @@
|
|
|
146
146
|
* @param {Object} queryParams - additional parameters
|
|
147
147
|
* @param {string} queryParams.query - search query text
|
|
148
148
|
* @param {string} queryParams.timeFrame - selected time period to show results for
|
|
149
|
-
* @param {string} [queryParams.lastEntryTimestamp] - time stamp of the last item in a list, used with auto
|
|
150
149
|
* @returns {Promise.<Array>} a promise resolving to an array of logs.
|
|
151
150
|
*/
|
|
152
151
|
function collectLogs(queryParams) {
|
|
@@ -155,21 +154,25 @@
|
|
|
155
154
|
var downloadLogsData = [];
|
|
156
155
|
var MAX_DOWNLOAD_LOGS = 100000;
|
|
157
156
|
|
|
158
|
-
return
|
|
159
|
-
|
|
157
|
+
return createSearch(size, keepAlive, queryParams).then(function (response) {
|
|
158
|
+
var hits = response.hits.hits;
|
|
159
|
+
|
|
160
|
+
if (hits.length > 0) {
|
|
161
|
+
downloadLogsData = downloadLogsData.concat(prepareLogs(hits));
|
|
162
|
+
|
|
163
|
+
return getNextChunk(response._scroll_id);
|
|
164
|
+
}
|
|
160
165
|
});
|
|
161
166
|
|
|
162
|
-
function getNextChunk(
|
|
163
|
-
return
|
|
167
|
+
function getNextChunk(scroll) {
|
|
168
|
+
return getNextScrollLogs(keepAlive, scroll)
|
|
164
169
|
.then(function (response) {
|
|
165
170
|
var hits = response.hits.hits;
|
|
166
171
|
|
|
167
172
|
if (hits.length > 0 && downloadLogsData.length < MAX_DOWNLOAD_LOGS - size) {
|
|
168
|
-
var lastHit = lodash.last(hits);
|
|
169
|
-
|
|
170
173
|
downloadLogsData = downloadLogsData.concat(prepareLogs(hits));
|
|
171
174
|
|
|
172
|
-
return getNextChunk(response.
|
|
175
|
+
return getNextChunk(response._scroll_id);
|
|
173
176
|
} else {
|
|
174
177
|
return downloadLogsData;
|
|
175
178
|
}
|
|
@@ -182,8 +185,9 @@
|
|
|
182
185
|
return logs.map(function (logData) {
|
|
183
186
|
var log = lodash.get(logData, '_source', {});
|
|
184
187
|
var level = log.level ? ' (' + log.level + ') ' : '';
|
|
188
|
+
var name = lodash.get(log, 'kubernetes.pod.name', lodash.get(log, 'name', ''));
|
|
185
189
|
|
|
186
|
-
return log['@timestamp'] + ' ' +
|
|
190
|
+
return log['@timestamp'] + ' ' + name + level +
|
|
187
191
|
lodash.get(log, 'message', '') + ' ' + JSON.stringify(lodash.get(log, 'more', {}));
|
|
188
192
|
});
|
|
189
193
|
}
|
|
@@ -250,18 +254,15 @@
|
|
|
250
254
|
}
|
|
251
255
|
|
|
252
256
|
/**
|
|
253
|
-
*
|
|
254
|
-
* @param {
|
|
257
|
+
* Makes a request to elasticsearch to create search id
|
|
258
|
+
* @param {boolean} size - logs size
|
|
259
|
+
* @param {string} keepAlive - sets lifetime for scroll id
|
|
255
260
|
* @param {Object} queryParams - additional parameters
|
|
256
261
|
* @param {string} queryParams.query - search query text
|
|
257
|
-
* @param {string} queryParams.timeFrame - selected time period to show results for
|
|
258
262
|
* @param {string} [queryParams.lastEntryTimestamp] - time stamp of the last item in a list, used with auto
|
|
259
|
-
* @
|
|
260
|
-
* @param {string} pitId - PIT ID that is needed to get next chunk of logs
|
|
261
|
-
* @param {Array} searchAfter - An array of identifiers that points to the last provided log
|
|
262
|
-
* @returns {Promise.<Object>} Elasticsearch logs data.
|
|
263
|
+
* @returns {Object}
|
|
263
264
|
*/
|
|
264
|
-
function
|
|
265
|
+
function createSearch(size, keepAlive, queryParams) {
|
|
265
266
|
var searchFrom = '';
|
|
266
267
|
var searchTo = 'now';
|
|
267
268
|
|
|
@@ -274,11 +275,8 @@
|
|
|
274
275
|
|
|
275
276
|
var config = {
|
|
276
277
|
size: size,
|
|
278
|
+
scroll: keepAlive,
|
|
277
279
|
body: {
|
|
278
|
-
pit: {
|
|
279
|
-
id: pitId,
|
|
280
|
-
keep_alive: keepAlive
|
|
281
|
-
},
|
|
282
280
|
query: {
|
|
283
281
|
bool: {
|
|
284
282
|
must: [
|
|
@@ -308,11 +306,22 @@
|
|
|
308
306
|
}
|
|
309
307
|
};
|
|
310
308
|
|
|
311
|
-
if (searchAfter) {
|
|
312
|
-
config.body.search_after = searchAfter;
|
|
313
|
-
}
|
|
314
|
-
|
|
315
309
|
return ElasticsearchService.search(config);
|
|
316
310
|
}
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* Gets next part of the logs using scroll id parameter
|
|
314
|
+
* @param {boolean} keepAlive - determines how long the scroll id should be alive
|
|
315
|
+
* @param {string} scrollId - scroll id that is needed to get next chunk of logs
|
|
316
|
+
* @returns {Promise.<Object>} Elasticsearch logs data.
|
|
317
|
+
*/
|
|
318
|
+
function getNextScrollLogs(keepAlive, scrollId) {
|
|
319
|
+
return ElasticsearchService.scroll({
|
|
320
|
+
body: {
|
|
321
|
+
scroll: keepAlive,
|
|
322
|
+
scroll_id: scrollId
|
|
323
|
+
}
|
|
324
|
+
});
|
|
325
|
+
}
|
|
317
326
|
}
|
|
318
327
|
}());
|
package/src/nuclio/functions/version/version-execution-log/version-execution-log.component.js
CHANGED
|
@@ -391,7 +391,8 @@ such restriction.
|
|
|
391
391
|
*/
|
|
392
392
|
function generateFilterQuery() {
|
|
393
393
|
var levels = lodash.chain(ctrl.filter.level).pickBy().keys().join(' OR ').value();
|
|
394
|
-
var
|
|
394
|
+
var projectName = lodash.get(ctrl.version, ['metadata', 'labels', 'nuclio.io/project-name']);
|
|
395
|
+
var queries = ['system-id:"' + ConfigService.systemId + '"', '_exists_:nuclio', 'nuclio.project_name.keyword:' + projectName];
|
|
395
396
|
|
|
396
397
|
if (!lodash.isEmpty(ctrl.version.metadata.name)) {
|
|
397
398
|
queries.push('name:' + ctrl.version.metadata.name);
|