Class: Conversant::V3::Services::VMS::Analytics

Inherits:
Object
  • Object
show all
Defined in:
lib/conversant/v3/services/vms/analytics.rb

Overview

Analytics service for VMS metrics

Provides analytics data for video transcoding operations including duration and volume metrics for reporting and capacity planning.

Examples:

Get transcoding analytics

vms = Conversant::V3.vms(12345)

# Get transcoding duration metrics
duration = vms.analytics.transcoding({
  startTime: "2025-01-01",
  endTime: "2025-01-31"
})

# Get volume metrics
volume = vms.analytics.volume({
  startTime: "2025-01-01",
  endTime: "2025-01-31"
})

Since:

  • 1.0.0

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(parent) ⇒ Analytics

Initialize analytics service

Parameters:

  • parent (VMS)

    the parent VMS service instance

Since:

  • 1.0.0



36
37
38
# File 'lib/conversant/v3/services/vms/analytics.rb', line 36

def initialize(parent)
  @parent = parent
end

Instance Attribute Details

#parentVMS (readonly)

Returns the parent VMS service instance.

Returns:

  • (VMS)

    the parent VMS service instance

Since:

  • 1.0.0



31
32
33
# File 'lib/conversant/v3/services/vms/analytics.rb', line 31

def parent
  @parent
end

Instance Method Details

#transcoding(payload) ⇒ Array

Get transcoding duration analytics

Retrieves duration metrics for video transcoding operations over a specified time range. Useful for capacity planning and billing calculations.

Examples:

Get monthly transcoding duration

duration = vms.analytics.transcoding({
  startTime: "2025-01-01",
  endTime: "2025-01-31"
})
puts "Total duration: #{duration.sum} minutes"

Parameters:

  • payload (Hash)

    query parameters including time range

Options Hash (payload):

  • :startTime (String)

    start date/time

  • :endTime (String)

    end date/time

Returns:

  • (Array)

    transcoding duration metrics, or empty array on error

Since:

  • 1.0.0



60
61
62
63
64
65
66
67
68
69
# File 'lib/conversant/v3/services/vms/analytics.rb', line 60

def transcoding(payload)
  merged_payload = payload.merge(type: nil)
  response = @parent.send(:call, 'GET', "/reporting/vms/transcoding/duration?#{merged_payload.to_query}")
  return [] if response.nil?

  JSON.parse(response)
rescue StandardError => e
  logger.error "#{@parent.send(:identifier)}.METHOD:#{__method__}.EXCEPTION:#{e.message}"
  []
end

#volume(payload) ⇒ Array

Get volume analytics for transcoding

Retrieves volume metrics (in bytes/GB) for transcoded video data over a specified time range. Useful for storage capacity planning and bandwidth analysis.

Examples:

Get monthly transcoding volume

volume = vms.analytics.volume({
  startTime: "2025-01-01",
  endTime: "2025-01-31"
})
puts "Total volume: #{volume.sum} GB"

Parameters:

  • payload (Hash)

    query parameters including time range

Options Hash (payload):

  • :startTime (String)

    start date/time

  • :endTime (String)

    end date/time

Returns:

  • (Array)

    volume metrics for transcoding operations, or empty array on error

Since:

  • 1.0.0



91
92
93
94
95
96
97
98
99
100
# File 'lib/conversant/v3/services/vms/analytics.rb', line 91

def volume(payload)
  merged_payload = payload.merge(type: nil)
  response = @parent.send(:call, 'GET', "/reporting/vms/transcoding/volume?#{merged_payload.to_query}")
  return [] if response.nil?

  JSON.parse(response)
rescue StandardError => e
  logger.error "#{@parent.send(:identifier)}.METHOD:#{__method__}.EXCEPTION:#{e.message}"
  []
end