Class Sink (11.0.0)

A sink is an object that lets you to specify a set of log entries to export to a particular destination. Cloud Logging lets you export log entries to destinations including Cloud Storage buckets (for long term log storage), Google BigQuery datasets (for log analysis), Google Pub/Sub (for streaming to other applications).

See Introduction to Sinks

Package

@google-cloud/logging

Example

  const 
  
 { 
 Logging 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/logging 
' 
 ); 
 const 
  
 logging 
  
 = 
  
 new 
  
  Logging 
 
 (); 
 const 
  
 sink 
  
 = 
  
 logging 
 . 
 sink 
 ( 
 'my-sink' 
 ); 
 

Constructors

(constructor)(logging, name)

  constructor 
 ( 
 logging 
 : 
  
 Logging 
 , 
  
 name 
 : 
  
 string 
 ); 
 

Constructs a new instance of the Sink class

Parameters
Name
Description
logging
name
string

Properties

formattedName_

  formattedName_ 
 : 
  
 string 
 ; 
 

logging

  logging 
 : 
  
 Logging 
 ; 
 
  metadata 
 ?: 
  
 LogSink 
 ; 
 

name

  name 
 : 
  
 string 
 ; 
 

Methods

create(config)

  create 
 ( 
 config 
 : 
  
 CreateSinkRequest 
 ) 
 : 
  
 Promise 
< [ 
 Sink 
 , 
  
 LogSink 
 ]>; 
 

Create a sink.

Parameter
Name
Description
config
CreateSinkRequest

Config to set for the sink.

Returns
Type
Description
Promise <[ Sink , LogSink ]>

{Promise

Examples
  const 
  
 { 
 Logging 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/logging 
' 
 ); 
 const 
  
 logging 
  
 = 
  
 new 
  
  Logging 
 
 (); 
 const 
  
 sink 
  
 = 
  
 logging 
 . 
 sink 
 ( 
 'my-sink' 
 ); 
 const 
  
 config 
  
 = 
  
 { 
  
 destination 
 : 
  
 { 
  
 // ... 
  
 } 
 }; 
 sink 
 . 
 create 
 ( 
 config 
 , 
  
 ( 
 err 
 , 
  
 sink 
 , 
  
 apiResponse 
 ) 
  
 = 
>  
 { 
  
 if 
  
 ( 
 ! 
 err 
 ) 
  
 { 
  
 // The sink was created successfully. 
  
 } 
 }); 
 //- 
 // If the callback is omitted, we'll return a Promise. 
 //- 
 sink 
 . 
 create 
 ( 
 config 
 ). 
 then 
 ( 
 data 
  
 = 
>  
 { 
  
 const 
  
 sink 
  
 = 
  
 data 
 [ 
 0 
 ]; 
  
 const 
  
 apiResponse 
  
 = 
  
 data 
 [ 
 1 
 ]; 
 }); 
 

Another example:

   
 // Imports the Google Cloud client libraries 
  
 const 
  
 { 
 Logging 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/logging 
' 
 ); 
  
 const 
  
 { 
 Storage 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/storage 
' 
 ); 
  
 // Creates clients 
  
 const 
  
 logging 
  
 = 
  
 new 
  
  Logging 
 
 (); 
  
 const 
  
 storage 
  
 = 
  
 new 
  
 Storage 
 (); 
  
 /** 
 * TODO(developer): Uncomment the following lines to run the code. 
 */ 
  
 // const sinkName = 'Name of your sink, e.g. my-sink'; 
  
 // const bucketName = 'Desination bucket, e.g. my-bucket'; 
  
 // const filter = 'Optional log filer, e.g. severity=ERROR'; 
  
 // The destination can be a Cloud Storage bucket, a Cloud Pub/Sub topic, 
  
 // or a BigQuery dataset. In this case, it is a Cloud Storage Bucket. 
  
 // See https://cloud.google.com/logging/docs/api/tasks/exporting-logs for 
  
 // information on the destination format. 
  
 const 
  
 destination 
  
 = 
  
 storage 
 . 
 bucket 
 ( 
 bucketName 
 ); 
  
 const 
  
 sink 
  
 = 
  
 logging 
 . 
 sink 
 ( 
 sinkName 
 ); 
  
 /** 
 * The filter determines which logs this sink matches and will be exported 
 * to the destination. For example a filter of 'severity>=INFO' will send 
 * all logs that have a severity of INFO or greater to the destination. 
 * See https://cloud.google.com/logging/docs/view/advanced_filters for more 
 * filter information. 
 */ 
  
 const 
  
 config 
  
 = 
  
 { 
  
 destination 
 : 
  
 destination 
 , 
  
 filter 
 : 
  
 filter 
 , 
  
 }; 
  
 async 
  
 function 
  
 createSink 
 () 
  
 { 
  
 // See https://googleapis.dev/nodejs/logging/latest/Sink.html#create 
  
 await 
  
 sink 
 . 
 create 
 ( 
 config 
 ); 
  
 console 
 . 
 log 
 ( 
 `Created sink 
 ${ 
 sinkName 
 } 
 to 
 ${ 
 bucketName 
 } 
 ` 
 ); 
  
 } 
  
 createSink 
 (); 
 

create(config, callback)

  create 
 ( 
 config 
 : 
  
 CreateSinkRequest 
 , 
  
 callback 
 : 
  
 CreateSinkCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
Returns
Type
Description
void

delete(gaxOptions)

  delete 
 ( 
 gaxOptions 
 ?: 
  
 CallOptions 
 ) 
 : 
  
 Promise<DeleteResponse> 
 ; 
 
Parameter
Name
Description
gaxOptions
CallOptions

Request configuration options, outlined here: https://googleapis.github.io/gax-nodejs/global.html#CallOptions.

Returns
Type
Description
Promise < DeleteResponse >

{Promise

Examples
  const 
  
 { 
 Logging 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/logging 
' 
 ); 
 const 
  
 logging 
  
 = 
  
 new 
  
  Logging 
 
 (); 
 const 
  
 sink 
  
 = 
  
 logging 
 . 
 sink 
 ( 
 'my-sink' 
 ); 
 sink 
 . 
 delete 
 (( 
 err 
 , 
  
 apiResponse 
 ) 
  
 = 
>  
 { 
  
 if 
  
 ( 
 ! 
 err 
 ) 
  
 { 
  
 // The log was deleted. 
  
 } 
 }); 
 //- 
 // If the callback is omitted, we'll return a Promise. 
 //- 
 sink 
 . 
 delete 
 (). 
 then 
 ( 
 data 
  
 = 
>  
 { 
  
 const 
  
 apiResponse 
  
 = 
  
 data 
 [ 
 0 
 ]; 
 }); 
 

Another example:

   
 // Imports the Google Cloud client library 
  
 const 
  
 { 
 Logging 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/logging 
' 
 ); 
  
 // Creates a client 
  
 const 
  
 logging 
  
 = 
  
 new 
  
  Logging 
 
 (); 
  
 /** 
 * TODO(developer): Uncomment the following line to run the code. 
 */ 
  
 // const sinkName = 'Name of sink to delete, e.g. my-sink'; 
  
 const 
  
 sink 
  
 = 
  
 logging 
 . 
 sink 
 ( 
 sinkName 
 ); 
  
 async 
  
 function 
  
 deleteSink 
 () 
  
 { 
  
 // See https://googleapis.dev/nodejs/logging/latest/Sink.html#delete 
  
 await 
  
 sink 
 . 
 delete 
 (); 
  
 console 
 . 
 log 
 ( 
 `Sink 
 ${ 
 sinkName 
 } 
 deleted.` 
 ); 
  
 } 
  
 deleteSink 
 (); 
 

delete(callback)

  delete 
 ( 
 callback 
 : 
  
 DeleteCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameter
Name
Description
callback
Returns
Type
Description
void

delete(gaxOptions, callback)

  delete 
 ( 
 gaxOptions 
 : 
  
 CallOptions 
 , 
  
 callback 
 : 
  
 DeleteCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
gaxOptions
CallOptions
callback
Returns
Type
Description
void
  getMetadata 
 ( 
 gaxOptions 
 ?: 
  
 CallOptions 
 ) 
 : 
  
 Promise<SinkMetadataResponse> 
 ; 
 

Get the sink's metadata.

See Sink Resource See projects.sink.get API Documentation

Parameter
Name
Description
gaxOptions
CallOptions

Request configuration options, outlined here: https://googleapis.github.io/gax-nodejs/global.html#CallOptions.

Returns
Type
Description
Promise < SinkMetadataResponse >

{Promise

Examples
  const 
  
 { 
 Logging 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/logging 
' 
 ); 
 const 
  
 logging 
  
 = 
  
 new 
  
  Logging 
 
 (); 
 const 
  
 sink 
  
 = 
  
 logging 
 . 
 sink 
 ( 
 'my-sink' 
 ); 
 sink 
 . 
  getMetadata 
 
 (( 
 err 
 , 
  
 metadata 
 , 
  
 apiResponse 
 ) 
  
 = 
>  
 {}); 
 //- 
 // If the callback is omitted, we'll return a Promise. 
 //- 
 sink 
 . 
  getMetadata 
 
 (). 
 then 
 ( 
 data 
  
 = 
>  
 { 
  
 const 
  
 metadata 
  
 = 
  
 data 
 [ 
 0 
 ]; 
 }); 
 

Another example:

   
 // Imports the Google Cloud client library 
  
 const 
  
 { 
 Logging 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/logging 
' 
 ); 
  
 // Creates a client 
  
 const 
  
 logging 
  
 = 
  
 new 
  
  Logging 
 
 (); 
  
 /** 
 * TODO(developer): Uncomment the following line to run the code. 
 */ 
  
 // const sinkName = 'Name of your sink, e.g. my-sink'; 
  
 const 
  
 sink 
  
 = 
  
 logging 
 . 
 sink 
 ( 
 sinkName 
 ); 
  
 async 
  
 function 
  
 printSinkMetadata 
 () 
  
 { 
  
 // See https://googleapis.dev/nodejs/logging/latest/Sink.html#getMetadata 
  
 const 
  
 [ 
 metadata 
 ] 
  
 = 
  
 await 
  
 sink 
 . 
  getMetadata 
 
 (); 
  
 console 
 . 
 log 
 ( 
 `Name: 
 ${ 
 metadata 
 . 
 name 
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 `Destination: 
 ${ 
 metadata 
 . 
 destination 
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 `Filter: 
 ${ 
 metadata 
 . 
 filter 
 } 
 ` 
 ); 
  
 } 
  
 printSinkMetadata 
 (); 
 
  getMetadata 
 ( 
 callback 
 : 
  
 SinkMetadataCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameter
Name
Description
callback
SinkMetadataCallback
Returns
Type
Description
void
  getMetadata 
 ( 
 gaxOptions 
 : 
  
 CallOptions 
 , 
  
 callback 
 : 
  
 SinkMetadataCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
gaxOptions
CallOptions
callback
SinkMetadataCallback
Returns
Type
Description
void

setFilter(filter)

  setFilter 
 ( 
 filter 
 : 
  
 string 
 ) 
 : 
  
 Promise<SinkMetadataResponse> 
 ; 
 

Set the sink's filter.

This will override any filter that was previously set.

See Advanced Logs Filters

Parameter
Name
Description
filter
string

The new filter.

Returns
Type
Description
Promise < SinkMetadataResponse >

{Promise

Example
  const 
  
 { 
 Logging 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/logging 
' 
 ); 
 const 
  
 logging 
  
 = 
  
 new 
  
  Logging 
 
 (); 
 const 
  
 sink 
  
 = 
  
 logging 
 . 
 sink 
 ( 
 'my-sink' 
 ); 
 const 
  
 filter 
  
 = 
  
 'metadata.severity = ALERT' 
 ; 
 sink 
 . 
  setFilter 
 
 ( 
 filter 
 , 
  
 ( 
 err 
 , 
  
 apiResponse 
 ) 
  
 = 
>  
 {}); 
 //- 
 // If the callback is omitted, we'll return a Promise. 
 //- 
 sink 
 . 
  setFilter 
 
 ( 
 filter 
 ). 
 then 
 ( 
 data 
  
 = 
>  
 { 
  
 const 
  
 apiResponse 
  
 = 
  
 data 
 [ 
 0 
 ]; 
 }); 
 

setFilter(filter, callback)

  setFilter 
 ( 
 filter 
 : 
  
 string 
 , 
  
 callback 
 : 
  
 SinkMetadataCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
filter
string
callback
SinkMetadataCallback
Returns
Type
Description
void
  setMetadata 
 ( 
 metadata 
 : 
  
 SetSinkMetadata 
 ) 
 : 
  
 Promise<SinkMetadataResponse> 
 ; 
 

Set the sink's metadata.

Note: If the sink was previously created or updated with uniqueWriterIdentity = true, then you must update the sink by setting uniqueWriterIdentity = true. Read more about using a unique writer identity here: https://cloud.google.com/logging/docs/api/tasks/exporting-logs#using_a_unique_writer_identity

See Sink Resource See projects.sink.update API Documentation

Parameter
Name
Description
metadata
SetSinkMetadata

See a [Sink resource](https://cloud.google.com/logging/docs/reference/v2/rest/v2/projects.sinks#LogSink).

Returns
Type
Description
Promise < SinkMetadataResponse >

{Promise

Examples
  const 
  
 { 
 Logging 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/logging 
' 
 ); 
 const 
  
 logging 
  
 = 
  
 new 
  
  Logging 
 
 (); 
 const 
  
 sink 
  
 = 
  
 logging 
 . 
 sink 
 ( 
 'my-sink' 
 ); 
 const 
  
 metadata 
  
 = 
  
 { 
  
 filter 
 : 
  
 'metadata.severity = ALERT' 
 }; 
 sink 
 . 
  setMetadata 
 
 ( 
 metadata 
 , 
  
 ( 
 err 
 , 
  
 apiResponse 
 ) 
  
 = 
>  
 {}); 
 //- 
 // If the callback is omitted, we'll return a Promise. 
 //- 
 sink 
 . 
  setMetadata 
 
 ( 
 metadata 
 ). 
 then 
 ( 
 data 
  
 = 
>  
 { 
  
 const 
  
 apiResponse 
  
 = 
  
 data 
 [ 
 0 
 ]; 
 }); 
 

Another example:

   
 // Imports the Google Cloud client library 
  
 const 
  
 { 
 Logging 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/logging 
' 
 ); 
  
 // Creates a client 
  
 const 
  
 logging 
  
 = 
  
 new 
  
  Logging 
 
 (); 
  
 /** 
 * TODO(developer): Uncomment the following lines to run the code. 
 */ 
  
 // const sinkName = 'Name of sink to update, e.g. my-sink'; 
  
 // const filter = 'New filter for the sink, e.g. severity >= WARNING'; 
  
 const 
  
 sink 
  
 = 
  
 logging 
 . 
 sink 
 ( 
 sinkName 
 ); 
  
 /** 
 * The filter determines which logs this sink matches and will be exported 
 * to the destination. For example a filter of 'severity>=INFO' will send 
 * all logs that have a severity of INFO or greater to the destination. 
 * See https://cloud.google.com/logging/docs/view/advanced_filters for more 
 * filter information. 
 */ 
  
 const 
  
 metadataInfo 
  
 = 
  
 { 
  
 filter 
 : 
  
 filter 
 , 
  
 }; 
  
 async 
  
 function 
  
 updateSink 
 () 
  
 { 
  
 // See https://googleapis.dev/nodejs/logging/latest/Sink.html#setMetadata 
  
 const 
  
 [ 
 metadata 
 ] 
  
 = 
  
 await 
  
 sink 
 . 
  setMetadata 
 
 ( 
 metadataInfo 
 ); 
  
 console 
 . 
 log 
 ( 
 `Sink 
 ${ 
 sinkName 
 } 
 updated.` 
 , 
  
 metadata 
 ); 
  
 } 
  
 updateSink 
 (); 
 
  setMetadata 
 ( 
 metadata 
 : 
  
 SetSinkMetadata 
 , 
  
 callback 
 : 
  
 SinkMetadataCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
metadata
SetSinkMetadata
callback
SinkMetadataCallback
Returns
Type
Description
void
Create a Mobile Website
View Site in Mobile | Classic
Share by: