@@ -15,7 +15,8 @@ import {
1515 IRequestError ,
1616 ScanResultsPayload ,
1717 IDependencyGraphPayload ,
18- WorkloadEventsPolicyPayload ,
18+ IWorkloadEventsPolicyPayload ,
19+ IClusterMetadataPayload ,
1920} from './types' ;
2021import { getProxyAgent } from './proxy' ;
2122
@@ -85,8 +86,7 @@ export async function sendScanResults(
8586) : Promise < boolean > {
8687 for ( const payload of payloads ) {
8788 // Intentionally removing scan results as they would be too big to log
88- // eslint-disable-next-line @typescript-eslint/no-unused-vars
89- const { scanResults, ...payloadWithoutScanResults } = payload ;
89+ const payloadWithoutScanResults = { ...payload , scanResults : undefined } ;
9090 try {
9191 const request : HomebaseRequest = {
9292 method : 'post' ,
@@ -148,7 +148,7 @@ export async function sendWorkloadMetadata(
148148}
149149
150150export async function sendWorkloadEventsPolicy (
151- payload : WorkloadEventsPolicyPayload ,
151+ payload : IWorkloadEventsPolicyPayload ,
152152) : Promise < void > {
153153 try {
154154 logger . info (
@@ -296,3 +296,53 @@ function shouldRetryRequest(
296296
297297 return false ;
298298}
299+
300+ export async function sendClusterMetadata ( ) : Promise < void > {
301+ const payload : IClusterMetadataPayload = {
302+ userLocator : config . INTEGRATION_ID ,
303+ cluster : config . CLUSTER_NAME ,
304+ agentId : config . AGENT_ID ,
305+ version : config . MONITOR_VERSION ,
306+ namespace : config . NAMESPACE ,
307+ } ;
308+
309+ try {
310+ logger . info (
311+ {
312+ userLocator : payload . userLocator ,
313+ cluster : payload . cluster ,
314+ agentId : payload . agentId ,
315+ } ,
316+ 'attempting to send cluster metadata' ,
317+ ) ;
318+
319+ const { response, attempt } = await retryRequest (
320+ 'post' ,
321+ `${ upstreamUrl } /api/v1/cluster` ,
322+ payload ,
323+ ) ;
324+ if ( ! isSuccessStatusCode ( response . statusCode ) ) {
325+ throw new Error ( `${ response . statusCode } ${ response . statusMessage } ` ) ;
326+ }
327+
328+ logger . info (
329+ {
330+ userLocator : payload . userLocator ,
331+ cluster : payload . cluster ,
332+ agentId : payload . agentId ,
333+ attempt,
334+ } ,
335+ 'cluster metadata sent upstream successfully' ,
336+ ) ;
337+ } catch ( error ) {
338+ logger . error (
339+ {
340+ error,
341+ userLocator : payload . userLocator ,
342+ cluster : payload . cluster ,
343+ agentId : payload . agentId ,
344+ } ,
345+ 'could not send cluster metadata' ,
346+ ) ;
347+ }
348+ }
0 commit comments