Convert Times to strings when being added to redis.

This commit is contained in:
isaac-hammes 2023-08-08 11:05:55 -07:00
parent 30820ec115
commit 46156fd85f
7 changed files with 26 additions and 21 deletions

View file

@ -18,7 +18,7 @@ module Vmpooler
# Dependencies for tracing
require 'opentelemetry-instrumentation-concurrent_ruby'
require 'opentelemetry-instrumentation-http_client'
# require 'opentelemetry-instrumentation-redis'
require 'opentelemetry-instrumentation-redis'
require 'opentelemetry-instrumentation-sinatra'
require 'opentelemetry-sdk'
require 'opentelemetry/exporter/jaeger'

View file

@ -25,7 +25,7 @@ module Vmpooler
def validate_token(backend)
tracer.in_span("Vmpooler::API::Helpers.#{__method__}") do
if valid_token?(backend)
backend.hset("vmpooler__token__#{request.env['HTTP_X_AUTH_TOKEN']}", 'last', Time.now)
backend.hset("vmpooler__token__#{request.env['HTTP_X_AUTH_TOKEN']}", 'last', Time.now.to_s)
return true
end

View file

@ -189,8 +189,8 @@ module Vmpooler
span.set_attribute('enduser.id', user)
has_token_result = has_token?
backend.sadd("vmpooler__migrating__#{template}", vm)
backend.hset("vmpooler__active__#{template}", vm, Time.now)
backend.hset("vmpooler__vm__#{vm}", 'checkout', Time.now)
backend.hset("vmpooler__active__#{template}", vm, Time.now.to_s)
backend.hset("vmpooler__vm__#{vm}", 'checkout', Time.now.to_s)
if Vmpooler::API.settings.config[:auth] and has_token_result
backend.hset("vmpooler__vm__#{vm}", 'token:token', request.env['HTTP_X_AUTH_TOKEN'])
@ -971,7 +971,7 @@ module Vmpooler
result['token'] = o[rand(25)] + (0...31).map { o[rand(o.length)] }.join
backend.hset("vmpooler__token__#{result['token']}", 'user', @auth.username)
backend.hset("vmpooler__token__#{result['token']}", 'created', Time.now)
backend.hset("vmpooler__token__#{result['token']}", 'created', Time.now.to_s)
span = OpenTelemetry::Trace.current_span
span.set_attribute('enduser.id', @auth.username)

View file

@ -167,8 +167,8 @@ module Vmpooler
pool_alias = redis.hget("vmpooler__vm__#{vm}", 'pool_alias')
redis.pipelined do |pipeline|
pipeline.hset("vmpooler__active__#{pool}", vm, Time.now)
pipeline.hset("vmpooler__vm__#{vm}", 'checkout', Time.now)
pipeline.hset("vmpooler__active__#{pool}", vm, Time.now.to_s)
pipeline.hset("vmpooler__vm__#{vm}", 'checkout', Time.now.to_s)
if ondemandrequest_hash['token:token']
pipeline.hset("vmpooler__vm__#{vm}", 'token:token', ondemandrequest_hash['token:token'])
pipeline.hset("vmpooler__vm__#{vm}", 'token:user', ondemandrequest_hash['token:user'])
@ -184,10 +184,10 @@ module Vmpooler
redis.pipelined do |pipeline|
pipeline.hset("vmpooler__boot__#{Date.today}", "#{pool}:#{vm}", finish) # maybe remove as this is never used by vmpooler itself?
pipeline.hset("vmpooler__vm__#{vm}", 'ready', Time.now)
pipeline.hset("vmpooler__vm__#{vm}", 'ready', Time.now.to_s)
# last boot time is displayed in API, and used by alarming script
pipeline.hset('vmpooler__lastboot', pool, Time.now)
pipeline.hset('vmpooler__lastboot', pool, Time.now.to_s)
end
$metrics.timing("time_to_ready_state.#{pool}", finish)
@ -226,7 +226,7 @@ module Vmpooler
last_checked_too_soon = ((Time.now - Time.parse(check_stamp)).to_i < $config[:config]['vm_checktime'] * 60) if check_stamp
break if check_stamp && last_checked_too_soon
redis.hset("vmpooler__vm__#{vm}", 'check', Time.now)
redis.hset("vmpooler__vm__#{vm}", 'check', Time.now.to_s)
# Check if the hosts TTL has expired
# if 'boottime' is nil, set bootime to beginning of unix epoch, forces TTL to be assumed expired
boottime = redis.hget("vmpooler__vm__#{vm}", 'ready')
@ -911,7 +911,7 @@ module Vmpooler
end
if options[:pending_vm]
pending_vm_count = redis.scard("vmpooler__pending__#{options[:poolname]}")
pending_vm_count = redis.scard("vmpooler__pending__#{options[:poolname]}")
break unless pending_vm_count == 0
end
@ -1333,8 +1333,8 @@ module Vmpooler
ready = redis.scard("vmpooler__ready__#{pool_name}")
pending = redis.scard("vmpooler__pending__#{pool_name}")
running = redis.scard("vmpooler__running__#{pool_name}")
total = pending.to_i + ready.to_i
total = pending.to_i + ready.to_i
$metrics.gauge("ready.#{pool_name}", ready)
$metrics.gauge("running.#{pool_name}", running)