mirror of
https://github.com/czhu12/canine.git
synced 2025-12-19 09:49:58 -06:00
Merge pull request #271 from czhu12/chriszhu__async_metrics_for_clsuters
asyn metrics loading
This commit is contained in:
@@ -4,7 +4,6 @@ class Clusters::MetricsController < Clusters::BaseController
|
||||
before_action :set_cluster
|
||||
|
||||
def show
|
||||
@nodes = K8::Metrics::Api::Node.ls(@cluster)
|
||||
@time_range = params[:time_range] || "2h"
|
||||
start_time = parse_time_range(@time_range)
|
||||
end_time = Time.now
|
||||
|
||||
21
app/view_models/async/clusters/metrics/show_view_model.rb
Normal file
21
app/view_models/async/clusters/metrics/show_view_model.rb
Normal file
@@ -0,0 +1,21 @@
|
||||
class Async::Clusters::Metrics::ShowViewModel < Async::BaseViewModel
|
||||
include MetricsHelper
|
||||
include StorageHelper
|
||||
|
||||
expects :cluster_id
|
||||
|
||||
def cluster
|
||||
@cluster ||= current_user.clusters.find(params[:cluster_id])
|
||||
end
|
||||
|
||||
def initial_render
|
||||
render "shared/components/table_skeleton", locals: { columns: 5 }
|
||||
end
|
||||
|
||||
def async_render
|
||||
nodes = K8::Metrics::Api::Node.ls(cluster)
|
||||
render "clusters/metrics/live_metrics", locals: {
|
||||
nodes: nodes
|
||||
}
|
||||
end
|
||||
end
|
||||
@@ -1,5 +1,5 @@
|
||||
<%= add_on_layout(@add_on) do %>
|
||||
<%= turbo_frame_tag "metrics", data: { controller: "refresh-turbo-frame", "refresh-turbo-frame-frequency-value": 5000 } do %>
|
||||
<%= turbo_frame_tag "metrics", data: { controller: "refresh-turbo-frame", "refresh-turbo-frame-frequency-value": 30000 } do %>
|
||||
<%= render(
|
||||
"shared/partials/async_renderer",
|
||||
view_model: Async::AddOns::Metrics::ShowViewModel.new(
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% @nodes.each do |node| %>
|
||||
<% nodes.each do |node| %>
|
||||
<tr class="cursor-pointer hover:bg-base-200/40">
|
||||
<td>
|
||||
<div class="flex items-center space-x-3 truncate">
|
||||
@@ -86,7 +86,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% @nodes.each do |node| %>
|
||||
<% nodes.each do |node| %>
|
||||
<% node.namespaces.each do |namespace, pods| %>
|
||||
<% pods.each do |pod| %>
|
||||
<tr class="cursor-pointer hover:bg-base-200/40">
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
<%= cluster_layout(@cluster) do %>
|
||||
<%= turbo_frame_tag "metrics", data: { controller: "refresh-turbo-frame", "refresh-turbo-frame-frequency-value": 5000 } do %>
|
||||
<%= render "clusters/metrics/live_metrics" %>
|
||||
<%= turbo_frame_tag "metrics", data: { controller: "refresh-turbo-frame", "refresh-turbo-frame-frequency-value": 30000 } do %>
|
||||
<%= render(
|
||||
"shared/partials/async_renderer",
|
||||
view_model: Async::Clusters::Metrics::ShowViewModel.new(
|
||||
current_user,
|
||||
cluster_id: @cluster.id
|
||||
)
|
||||
) %>
|
||||
<% end %>
|
||||
|
||||
<%= turbo_frame_tag "charts" do %>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<%= content_for :title, t("scaffold.edit.title", model: "Project") %>
|
||||
|
||||
<%= project_layout(@project) do %>
|
||||
<%= turbo_frame_tag "metrics", data: { controller: "refresh-turbo-frame", "refresh-turbo-frame-frequency-value": 5000 } do %>
|
||||
<%= turbo_frame_tag "metrics", data: { controller: "refresh-turbo-frame", "refresh-turbo-frame-frequency-value": 30000 } do %>
|
||||
<%= render(
|
||||
"shared/partials/async_renderer",
|
||||
view_model: Async::Projects::Metrics::IndexViewModel.new(
|
||||
|
||||
Reference in New Issue
Block a user