Skip to content

Commit b16c472

Browse files
authored
Merge branch 'main' into ad-hoc-management-screen-2
2 parents 3325160 + 7684d92 commit b16c472

File tree

235 files changed

+3720
-1376
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

235 files changed

+3720
-1376
lines changed

.buildkite/scripts/steps/functional/apm_cypress.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ set -euo pipefail
44

55
source .buildkite/scripts/common/util.sh
66

7+
APM_CYPRESS_RECORD_KEY="$(retry 5 5 vault read -field=CYPRESS_RECORD_KEY secret/kibana-issues/dev/apm-cypress-dashboard-record-key)"
8+
79
.buildkite/scripts/bootstrap.sh
810
.buildkite/scripts/download_build_artifacts.sh
911

@@ -15,4 +17,6 @@ cd "$XPACK_DIR"
1517

1618
checks-reporter-with-killswitch "APM Cypress Tests" \
1719
node plugins/apm/scripts/test/e2e.js \
18-
--kibana-install-dir "$KIBANA_BUILD_LOCATION"
20+
--kibana-install-dir "$KIBANA_BUILD_LOCATION" \
21+
--record \
22+
--key "$APM_CYPRESS_RECORD_KEY"

.github/CODEOWNERS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -745,6 +745,9 @@ packages/core/http/core-http-context-server-internal @elastic/kibana-core
745745
packages/core/http/core-http-context-server-mocks @elastic/kibana-core
746746
packages/core/http/core-http-request-handler-context-server @elastic/kibana-core
747747
packages/core/http/core-http-request-handler-context-server-internal @elastic/kibana-core
748+
packages/core/http/core-http-resources-server @elastic/kibana-core
749+
packages/core/http/core-http-resources-server-internal @elastic/kibana-core
750+
packages/core/http/core-http-resources-server-mocks @elastic/kibana-core
748751
packages/core/http/core-http-router-server-internal @elastic/kibana-core
749752
packages/core/http/core-http-router-server-mocks @elastic/kibana-core
750753
packages/core/http/core-http-server @elastic/kibana-core

package.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,9 @@
215215
"@kbn/core-http-context-server-mocks": "link:bazel-bin/packages/core/http/core-http-context-server-mocks",
216216
"@kbn/core-http-request-handler-context-server": "link:bazel-bin/packages/core/http/core-http-request-handler-context-server",
217217
"@kbn/core-http-request-handler-context-server-internal": "link:bazel-bin/packages/core/http/core-http-request-handler-context-server-internal",
218+
"@kbn/core-http-resources-server": "link:bazel-bin/packages/core/http/core-http-resources-server",
219+
"@kbn/core-http-resources-server-internal": "link:bazel-bin/packages/core/http/core-http-resources-server-internal",
220+
"@kbn/core-http-resources-server-mocks": "link:bazel-bin/packages/core/http/core-http-resources-server-mocks",
218221
"@kbn/core-http-router-server-internal": "link:bazel-bin/packages/core/http/core-http-router-server-internal",
219222
"@kbn/core-http-router-server-mocks": "link:bazel-bin/packages/core/http/core-http-router-server-mocks",
220223
"@kbn/core-http-server": "link:bazel-bin/packages/core/http/core-http-server",
@@ -942,6 +945,9 @@
942945
"@types/kbn__core-http-context-server-mocks": "link:bazel-bin/packages/core/http/core-http-context-server-mocks/npm_module_types",
943946
"@types/kbn__core-http-request-handler-context-server": "link:bazel-bin/packages/core/http/core-http-request-handler-context-server/npm_module_types",
944947
"@types/kbn__core-http-request-handler-context-server-internal": "link:bazel-bin/packages/core/http/core-http-request-handler-context-server-internal/npm_module_types",
948+
"@types/kbn__core-http-resources-server": "link:bazel-bin/packages/core/http/core-http-resources-server/npm_module_types",
949+
"@types/kbn__core-http-resources-server-internal": "link:bazel-bin/packages/core/http/core-http-resources-server-internal/npm_module_types",
950+
"@types/kbn__core-http-resources-server-mocks": "link:bazel-bin/packages/core/http/core-http-resources-server-mocks/npm_module_types",
945951
"@types/kbn__core-http-router-server-internal": "link:bazel-bin/packages/core/http/core-http-router-server-internal/npm_module_types",
946952
"@types/kbn__core-http-router-server-mocks": "link:bazel-bin/packages/core/http/core-http-router-server-mocks/npm_module_types",
947953
"@types/kbn__core-http-server": "link:bazel-bin/packages/core/http/core-http-server/npm_module_types",

packages/BUILD.bazel

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,9 @@ filegroup(
8181
"//packages/core/http/core-http-context-server-mocks:build",
8282
"//packages/core/http/core-http-request-handler-context-server:build",
8383
"//packages/core/http/core-http-request-handler-context-server-internal:build",
84+
"//packages/core/http/core-http-resources-server:build",
85+
"//packages/core/http/core-http-resources-server-internal:build",
86+
"//packages/core/http/core-http-resources-server-mocks:build",
8487
"//packages/core/http/core-http-router-server-internal:build",
8588
"//packages/core/http/core-http-router-server-mocks:build",
8689
"//packages/core/http/core-http-server:build",
@@ -418,6 +421,9 @@ filegroup(
418421
"//packages/core/http/core-http-context-server-mocks:build_types",
419422
"//packages/core/http/core-http-request-handler-context-server:build_types",
420423
"//packages/core/http/core-http-request-handler-context-server-internal:build_types",
424+
"//packages/core/http/core-http-resources-server:build_types",
425+
"//packages/core/http/core-http-resources-server-internal:build_types",
426+
"//packages/core/http/core-http-resources-server-mocks:build_types",
421427
"//packages/core/http/core-http-router-server-internal:build_types",
422428
"//packages/core/http/core-http-router-server-mocks:build_types",
423429
"//packages/core/http/core-http-server:build_types",

packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.test.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,19 @@ const mockedResponse: StatusResponse = {
6161
'15m': 0.1,
6262
},
6363
},
64+
elasticsearch_client: {
65+
protocol: 'https',
66+
connectedNodes: 3,
67+
nodesWithActiveSockets: 3,
68+
nodesWithIdleSockets: 1,
69+
totalActiveSockets: 25,
70+
totalIdleSockets: 2,
71+
totalQueuedRequests: 0,
72+
mostActiveNodeSockets: 15,
73+
averageActiveSocketsPerNode: 8,
74+
mostIdleNodeSockets: 2,
75+
averageIdleSocketsPerNode: 0.5,
76+
},
6477
process: {
6578
pid: 1,
6679
memory: {

packages/core/elasticsearch/core-elasticsearch-client-server-internal/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
export { ScopedClusterClient } from './src/scoped_cluster_client';
1010
export { ClusterClient } from './src/cluster_client';
1111
export { configureClient } from './src/configure_client';
12-
export { AgentManager } from './src/agent_manager';
12+
export { type AgentStore, AgentManager } from './src/agent_manager';
1313
export { getRequestDebugMeta, getErrorMessage } from './src/log_query_and_deprecation';
1414
export {
1515
PRODUCT_RESPONSE_HEADER,

packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/agent_manager.test.ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,10 @@ describe('AgentManager', () => {
104104
const agentFactory = agentManager.getAgentFactory();
105105
const agent = agentFactory({ url: new URL('http://elastic-node-1:9200') });
106106
// eslint-disable-next-line dot-notation
107-
expect(agentManager['httpStore'].has(agent)).toEqual(true);
107+
expect(agentManager['agents'].has(agent)).toEqual(true);
108108
agent.destroy();
109109
// eslint-disable-next-line dot-notation
110-
expect(agentManager['httpStore'].has(agent)).toEqual(false);
110+
expect(agentManager['agents'].has(agent)).toEqual(false);
111111
});
112112
});
113113

@@ -122,4 +122,21 @@ describe('AgentManager', () => {
122122
});
123123
});
124124
});
125+
126+
describe('#getAgents()', () => {
127+
it('returns the created HTTP and HTTPs Agent instances', () => {
128+
const agentManager = new AgentManager();
129+
const agentFactory1 = agentManager.getAgentFactory();
130+
const agentFactory2 = agentManager.getAgentFactory();
131+
const agent1 = agentFactory1({ url: new URL('http://elastic-node-1:9200') });
132+
const agent2 = agentFactory2({ url: new URL('http://elastic-node-1:9200') });
133+
const agent3 = agentFactory1({ url: new URL('https://elastic-node-1:9200') });
134+
const agent4 = agentFactory2({ url: new URL('https://elastic-node-1:9200') });
135+
136+
const agents = agentManager.getAgents();
137+
138+
expect(agents.size).toEqual(4);
139+
expect([...agents]).toEqual(expect.arrayContaining([agent1, agent2, agent3, agent4]));
140+
});
141+
});
125142
});

packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/agent_manager.ts

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import { Agent as HttpAgent } from 'http';
1010
import { Agent as HttpsAgent } from 'https';
11-
import { ConnectionOptions, HttpAgentOptions } from '@elastic/elasticsearch';
11+
import type { ConnectionOptions, HttpAgentOptions } from '@elastic/elasticsearch';
1212

1313
const HTTPS = 'https:';
1414
const DEFAULT_CONFIG: HttpAgentOptions = {
@@ -22,6 +22,14 @@ const DEFAULT_CONFIG: HttpAgentOptions = {
2222
export type NetworkAgent = HttpAgent | HttpsAgent;
2323
export type AgentFactory = (connectionOpts: ConnectionOptions) => NetworkAgent;
2424

25+
export interface AgentFactoryProvider {
26+
getAgentFactory(agentOptions?: HttpAgentOptions): AgentFactory;
27+
}
28+
29+
export interface AgentStore {
30+
getAgents(): Set<NetworkAgent>;
31+
}
32+
2533
/**
2634
* Allows obtaining Agent factories, which can then be fed into elasticsearch-js's Client class.
2735
* Ideally, we should obtain one Agent factory for each ES Client class.
@@ -33,15 +41,11 @@ export type AgentFactory = (connectionOpts: ConnectionOptions) => NetworkAgent;
3341
* exposes methods that can modify the underlying pools, effectively impacting the connections of other Clients.
3442
* @internal
3543
**/
36-
export class AgentManager {
37-
// Stores Https Agent instances
38-
private httpsStore: Set<HttpsAgent>;
39-
// Stores Http Agent instances
40-
private httpStore: Set<HttpAgent>;
44+
export class AgentManager implements AgentFactoryProvider, AgentStore {
45+
private agents: Set<HttpAgent>;
4146

4247
constructor(private agentOptions: HttpAgentOptions = DEFAULT_CONFIG) {
43-
this.httpsStore = new Set();
44-
this.httpStore = new Set();
48+
this.agents = new Set();
4549
}
4650

4751
public getAgentFactory(agentOptions?: HttpAgentOptions): AgentFactory {
@@ -61,8 +65,8 @@ export class AgentManager {
6165
connectionOpts.tls
6266
);
6367
httpsAgent = new HttpsAgent(config);
64-
this.httpsStore.add(httpsAgent);
65-
dereferenceOnDestroy(this.httpsStore, httpsAgent);
68+
this.agents.add(httpsAgent);
69+
dereferenceOnDestroy(this.agents, httpsAgent);
6670
}
6771

6872
return httpsAgent;
@@ -71,19 +75,23 @@ export class AgentManager {
7175
if (!httpAgent) {
7276
const config = Object.assign({}, DEFAULT_CONFIG, this.agentOptions, agentOptions);
7377
httpAgent = new HttpAgent(config);
74-
this.httpStore.add(httpAgent);
75-
dereferenceOnDestroy(this.httpStore, httpAgent);
78+
this.agents.add(httpAgent);
79+
dereferenceOnDestroy(this.agents, httpAgent);
7680
}
7781

7882
return httpAgent;
7983
};
8084
}
85+
86+
public getAgents(): Set<NetworkAgent> {
87+
return this.agents;
88+
}
8189
}
8290

83-
const dereferenceOnDestroy = (protocolStore: Set<NetworkAgent>, agent: NetworkAgent) => {
91+
const dereferenceOnDestroy = (store: Set<NetworkAgent>, agent: NetworkAgent) => {
8492
const doDestroy = agent.destroy.bind(agent);
8593
agent.destroy = () => {
86-
protocolStore.delete(agent);
94+
store.delete(agent);
8795
doDestroy();
8896
};
8997
};

0 commit comments

Comments
 (0)