Repository: incubator-trafficcontrol
Updated Branches:
  refs/heads/master 9a71a0af3 -> 48fac1731


Fix TM2 event times missing


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/370a27b2
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/370a27b2
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/370a27b2

Branch: refs/heads/master
Commit: 370a27b2de649c5bc1f5a45083c70b1e94371b16
Parents: 9a71a0a
Author: Robert Butts <robert.o.bu...@gmail.com>
Authored: Wed Feb 1 13:43:35 2017 -0700
Committer: Dave Neuman <neu...@apache.org>
Committed: Wed Feb 1 13:54:14 2017 -0700

----------------------------------------------------------------------
 .../traffic_monitor/deliveryservice/stat.go     |  2 +-
 .../traffic_monitor/health/cache.go             |  2 +-
 .../traffic_monitor/health/event.go             | 24 ++++++++++++--------
 .../traffic_monitor/manager/peer.go             |  4 ++--
 4 files changed, 19 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/370a27b2/traffic_monitor_golang/traffic_monitor/deliveryservice/stat.go
----------------------------------------------------------------------
diff --git a/traffic_monitor_golang/traffic_monitor/deliveryservice/stat.go 
b/traffic_monitor_golang/traffic_monitor/deliveryservice/stat.go
index f6d83f9..b50f20e 100644
--- a/traffic_monitor_golang/traffic_monitor/deliveryservice/stat.go
+++ b/traffic_monitor_golang/traffic_monitor/deliveryservice/stat.go
@@ -238,7 +238,7 @@ func addDSPerSecStats(dsName enum.DeliveryServiceName, stat 
dsdata.Stat, lastSta
                stat.CommonStats.IsAvailable.Value = false
                stat.CommonStats.IsHealthy.Value = false
                stat.CommonStats.ErrorStr.Value = errStr
-               events.Add(health.Event{Time: time.Now(), Unix: 
time.Now().Unix(), Description: errStr, Name: dsName.String(), Hostname: 
dsName.String(), Type: "Delivery Service", Available: 
stat.CommonStats.IsAvailable.Value})
+               events.Add(health.Event{Time: health.Time(time.Now()), 
Description: errStr, Name: dsName.String(), Hostname: dsName.String(), Type: 
"Delivery Service", Available: stat.CommonStats.IsAvailable.Value})
        }
 
        dsStats.DeliveryService[dsName] = stat

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/370a27b2/traffic_monitor_golang/traffic_monitor/health/cache.go
----------------------------------------------------------------------
diff --git a/traffic_monitor_golang/traffic_monitor/health/cache.go 
b/traffic_monitor_golang/traffic_monitor/health/cache.go
index 7cf6eb5..42ce5a9 100644
--- a/traffic_monitor_golang/traffic_monitor/health/cache.go
+++ b/traffic_monitor_golang/traffic_monitor/health/cache.go
@@ -196,7 +196,7 @@ func CalcAvailability(results []cache.Result, pollerName 
string, statResultHisto
 
                if available, ok := localStates.GetCache(result.ID); !ok || 
available.IsAvailable != isAvailable {
                        log.Infof("Changing state for %s was: %t now: %t 
because %s poller: %v error: %v", result.ID, available.IsAvailable, 
isAvailable, whyAvailable, pollerName, result.Error)
-                       events.Add(Event{Time: time.Now(), Description: 
whyAvailable + " (" + pollerName + ")", Name: string(result.ID), Hostname: 
string(result.ID), Type: toData.ServerTypes[result.ID].String(), Available: 
isAvailable})
+                       events.Add(Event{Time: Time(time.Now()), Description: 
whyAvailable + " (" + pollerName + ")", Name: string(result.ID), Hostname: 
string(result.ID), Type: toData.ServerTypes[result.ID].String(), Available: 
isAvailable})
                }
 
                localStates.SetCache(result.ID, peer.IsAvailable{IsAvailable: 
isAvailable})

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/370a27b2/traffic_monitor_golang/traffic_monitor/health/event.go
----------------------------------------------------------------------
diff --git a/traffic_monitor_golang/traffic_monitor/health/event.go 
b/traffic_monitor_golang/traffic_monitor/health/event.go
index 4dd40a3..7255031 100644
--- a/traffic_monitor_golang/traffic_monitor/health/event.go
+++ b/traffic_monitor_golang/traffic_monitor/health/event.go
@@ -20,22 +20,28 @@ package health
  */
 
 import (
+       "fmt"
        "sync"
        "time"
 
        
"github.com/apache/incubator-trafficcontrol/traffic_monitor_golang/common/log"
 )
 
+type Time time.Time
+
+func (t Time) MarshalJSON() ([]byte, error) {
+       return []byte(fmt.Sprintf("%d", time.Time(t).Unix())), nil
+}
+
 // Event represents an event change in aggregated data. For example, a cache 
being marked as unavailable.
 type Event struct {
-       Time        time.Time `json:"-"`
-       Index       uint64    `json:"index"`
-       Unix        int64     `json:"time"`
-       Description string    `json:"description"`
-       Name        string    `json:"name"`
-       Hostname    string    `json:"hostname"`
-       Type        string    `json:"type"`
-       Available   bool      `json:"isAvailable"`
+       Time        Time   `json:"time"`
+       Index       uint64 `json:"index"`
+       Description string `json:"description"`
+       Name        string `json:"name"`
+       Hostname    string `json:"hostname"`
+       Type        string `json:"type"`
+       Available   bool   `json:"isAvailable"`
 }
 
 // Events provides safe access for multiple goroutines readers and a single 
writer to a stored Events slice.
@@ -68,7 +74,7 @@ func (o *ThreadsafeEvents) Get() []Event {
 // Add adds the given event. This is threadsafe for one writer, multiple 
readers. This MUST NOT be called by multiple threads, as it non-atomically 
fetches and adds.
 func (o *ThreadsafeEvents) Add(e Event) {
        // host="hostname", type=EDGE, available=true, msg="REPORTED - 
available"
-       log.Eventf(e.Time, "host=\"%s\", type=%s, available=%t, msg=\"%s\"", 
e.Hostname, e.Type, e.Available, e.Description)
+       log.Eventf(time.Time(e.Time), "host=\"%s\", type=%s, available=%t, 
msg=\"%s\"", e.Hostname, e.Type, e.Available, e.Description)
        o.m.Lock() // TODO test removing
        events := copyEvents(*o.events)
        e.Index = *o.nextIndex

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/370a27b2/traffic_monitor_golang/traffic_monitor/manager/peer.go
----------------------------------------------------------------------
diff --git a/traffic_monitor_golang/traffic_monitor/manager/peer.go 
b/traffic_monitor_golang/traffic_monitor/manager/peer.go
index e103585..7732d68 100644
--- a/traffic_monitor_golang/traffic_monitor/manager/peer.go
+++ b/traffic_monitor_golang/traffic_monitor/manager/peer.go
@@ -60,7 +60,7 @@ func StartPeerManager(
 
 func comparePeerState(events health.ThreadsafeEvents, result peer.Result, 
peerStates peer.CRStatesPeersThreadsafe) {
        if result.Available != peerStates.GetPeerAvailability(result.ID) {
-               events.Add(health.Event{Time: result.Time, Unix: 
result.Time.Unix(), Description: util.JoinErrorsString(result.Errors), Name: 
result.ID.String(), Hostname: result.ID.String(), Type: "Peer", Available: 
result.Available})
+               events.Add(health.Event{Time: health.Time(result.Time), 
Description: util.JoinErrorsString(result.Errors), Name: result.ID.String(), 
Hostname: result.ID.String(), Type: "Peer", Available: result.Available})
        }
 }
 
@@ -114,7 +114,7 @@ func combineCrStates(events health.ThreadsafeEvents, 
peerOptimistic bool, peerSt
                }
 
                if overrideCondition != "" {
-                       events.Add(health.Event{Time: time.Now(), Unix: 
time.Now().Unix(), Description: fmt.Sprintf("Health protocol override condition 
%s", overrideCondition), Name: cacheName.String(), Hostname: 
cacheName.String(), Type: toDataCopy.ServerTypes[cacheName].String(), 
Available: available})
+                       events.Add(health.Event{Time: health.Time(time.Now()), 
Description: fmt.Sprintf("Health protocol override condition %s", 
overrideCondition), Name: cacheName.String(), Hostname: cacheName.String(), 
Type: toDataCopy.ServerTypes[cacheName].String(), Available: available})
                }
 
                combinedStates.SetCache(cacheName, 
peer.IsAvailable{IsAvailable: available})

Reply via email to