1717package pkg
1818
1919import (
20- "fmt"
21- "time"
22-
2320 "github.com/devtron-labs/common-lib/utils"
2421 "github.com/devtron-labs/lens/internal/dto"
2522 "github.com/devtron-labs/lens/internal/sql"
23+ "github.com/devtron-labs/lens/pkg/constants"
24+ utils2 "github.com/devtron-labs/lens/pkg/utils"
2625 "go.uber.org/zap"
2726)
2827
29- const (
30- layout = "2006-01-02T15:04:05.000Z"
31- )
32-
3328type DeploymentMetricService interface {
3429 GetDeploymentMetrics (request * dto.MetricRequest ) (* dto.Metrics , error )
3530 GetBulkDeploymentMetrics (request * dto.BulkMetricRequest ) (* dto.BulkMetricsResponse , error )
@@ -56,7 +51,7 @@ func NewDeploymentMetricServiceImpl(
5651}
5752
5853func (impl DeploymentMetricServiceImpl ) GetDeploymentMetrics (request * dto.MetricRequest ) (* dto.Metrics , error ) {
59- from , to , err := impl . parseDateRange (request .From , request .To )
54+ from , to , err := utils2 . ParseDateRange (request .From , request .To )
6055 if err != nil {
6156 return nil , err
6257 }
@@ -68,7 +63,7 @@ func (impl DeploymentMetricServiceImpl) GetDeploymentMetrics(request *dto.Metric
6863 }
6964
7065 if len (releases ) == 0 {
71- return impl . createEmptyMetrics (), nil
66+ return utils2 . CreateEmptyMetrics (), nil
7267 }
7368 var releaseIds []int
7469 for _ , v := range releases {
@@ -117,7 +112,7 @@ func (impl DeploymentMetricServiceImpl) GetBulkDeploymentMetrics(request *dto.Bu
117112}
118113
119114func (impl DeploymentMetricServiceImpl ) getBulkDeploymentMetricsWithBulkQueries (request * dto.BulkMetricRequest , response * dto.BulkMetricsResponse ) (* dto.BulkMetricsResponse , error ) {
120- from , to , err := impl . parseDateRange (request .From , request .To )
115+ from , to , err := utils2 . ParseDateRange (request .From , request .To )
121116 if err != nil {
122117 impl .logger .Errorw ("error parsing date range" , "from" , request .From , "to" , request .To , "err" , err )
123118 return nil , err
@@ -135,7 +130,7 @@ func (impl DeploymentMetricServiceImpl) getBulkDeploymentMetricsWithBulkQueries(
135130 var allReleaseIds []int
136131
137132 for _ , release := range allReleases {
138- key := impl . generateAppEnvKey (release .AppId , release .EnvironmentId )
133+ key := utils2 . GenerateAppEnvKey (release .AppId , release .EnvironmentId )
139134 releasesByAppEnv [key ] = append (releasesByAppEnv [key ], release )
140135 allReleaseIds = append (allReleaseIds , release .Id )
141136 }
@@ -167,7 +162,7 @@ func (impl DeploymentMetricServiceImpl) getBulkDeploymentMetricsWithBulkQueries(
167162
168163 // Step 5: Process each app-env pair
169164 for i , pair := range request .AppEnvPairs {
170- key := impl . generateAppEnvKey (pair .AppId , pair .EnvId )
165+ key := utils2 . GenerateAppEnvKey (pair .AppId , pair .EnvId )
171166 releases := releasesByAppEnv [key ]
172167
173168 appEnvMetric := dto.AppEnvMetrics {
@@ -176,7 +171,7 @@ func (impl DeploymentMetricServiceImpl) getBulkDeploymentMetricsWithBulkQueries(
176171 }
177172
178173 if len (releases ) == 0 {
179- appEnvMetric .Metrics = impl . createEmptyMetrics ()
174+ appEnvMetric .Metrics = utils2 . CreateEmptyMetrics ()
180175 } else {
181176 metrics , err := impl .processAppEnvMetrics (releases , allMaterials , allLeadTimes , previousReleases [key ])
182177 if err != nil {
@@ -193,29 +188,6 @@ func (impl DeploymentMetricServiceImpl) getBulkDeploymentMetricsWithBulkQueries(
193188 return response , nil
194189}
195190
196- // parseDateRange parses from and to date strings
197- func (impl DeploymentMetricServiceImpl ) parseDateRange (from , to string ) (time.Time , time.Time , error ) {
198- fromTime , err := time .Parse (layout , from )
199- if err != nil {
200- return time.Time {}, time.Time {}, err
201- }
202- toTime , err := time .Parse (layout , to )
203- if err != nil {
204- return time.Time {}, time.Time {}, err
205- }
206- return fromTime , toTime , nil
207- }
208-
209- // generateAppEnvKey creates a consistent key for app-env pair mapping
210- func (impl DeploymentMetricServiceImpl ) generateAppEnvKey (appId , envId int ) string {
211- return fmt .Sprintf ("%d-%d" , appId , envId )
212- }
213-
214- // createEmptyMetrics creates an empty metrics response
215- func (impl DeploymentMetricServiceImpl ) createEmptyMetrics () * dto.Metrics {
216- return & dto.Metrics {Series : []* dto.Metric {}}
217- }
218-
219191// processAppEnvMetrics processes metrics for a single app-env pair
220192func (impl DeploymentMetricServiceImpl ) processAppEnvMetrics (releases []sql.AppRelease , allMaterials []* sql.PipelineMaterial , allLeadTimes []sql.LeadTime , previousRelease * sql.AppRelease ) (* dto.Metrics , error ) {
221193 releaseIds := make ([]int , len (releases ))
@@ -325,7 +297,7 @@ func (impl DeploymentMetricServiceImpl) calculateChangeFailureRateAndRecoveryTim
325297 for _ , v := range releases {
326298 if v .ReleaseStatus == dto .Failure {
327299 if metrics .LastFailedTime == "" {
328- metrics .LastFailedTime = v .ReleaseTime .Format (layout )
300+ metrics .LastFailedTime = v .ReleaseTime .Format (constants . Layout )
329301 }
330302 //if i != 0 {
331303 // releases[i].RecoveryTime = releases[i].ReleaseTime.Sub(releases[i+1].ReleaseTime)
0 commit comments