Class: LogStash::Outputs::MicrosoftSentinelOutputInternal::LogAnalyticsClient

Inherits:
Object
  • Object
show all
Defined in:
lib/logstash/sentinel/logAnalyticsClient.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(logstashLoganalyticsConfiguration) ⇒ LogAnalyticsClient

Returns a new instance of LogAnalyticsClient.



16
17
18
19
20
21
22
23
24
25
# File 'lib/logstash/sentinel/logAnalyticsClient.rb', line 16

def initialize (logstashLoganalyticsConfiguration)
  @logstashLoganalyticsConfiguration = logstashLoganalyticsConfiguration
  @logger = @logstashLoganalyticsConfiguration.logger

  set_proxy(@logstashLoganalyticsConfiguration.proxy)
  la_api_version = "2021-11-01-preview"
  @uri = sprintf("%s/dataCollectionRules/%s/streams/%s?api-version=%s",@logstashLoganalyticsConfiguration.data_collection_endpoint, @logstashLoganalyticsConfiguration.dcr_immutable_id, logstashLoganalyticsConfiguration.dcr_stream_name, la_api_version)
  @aadTokenProvider=LogAnalyticsAadTokenProvider::new(logstashLoganalyticsConfiguration)
  @userAgent = getUserAgent()
end

Class Method Details

.is_successfully_posted(response) ⇒ Object

Static function to return if the response is OK or else



40
41
42
# File 'lib/logstash/sentinel/logAnalyticsClient.rb', line 40

def self.is_successfully_posted(response)
  return (response.code >= 200 && response.code < 300 ) ? true : false
end

Instance Method Details

#post_data(body) ⇒ Object

Post the given json to Azure Loganalytics

Raises:

  • (ConfigError)


28
29
30
31
32
33
34
35
36
37
# File 'lib/logstash/sentinel/logAnalyticsClient.rb', line 28

def post_data(body)
  raise ConfigError, 'no json_records' if body.empty?

  # Create REST request header
  header = get_header()

  # Post REST request
  response = RestClient.post(@uri, body, header)
  return response
end