Stop decoding unused Community and Raw fields of RIS messages (closes #9)
check / check (push) Failing after 1s
check / check (push) Failing after 1s
Community and Raw are decoded from every live message and read by no handler; Raw is the hex of the whole BGP message. Each parsed message sits in up to four handler queues, so retaining them is a large share of queue memory. Tagging both json:"-" keeps them out of the decoded message while the fields handlers use still decode. A decode test over docs/message-examples.json confirms both stay empty and the used fields (Path, Announcements) still populate. Model: opus-4-8
This commit was merged in pull request #18.
This commit is contained in:
+22
-18
@@ -63,24 +63,28 @@ type RISLiveMessage struct {
|
||||
// the actual BGP update data including AS path, communities, announcements,
|
||||
// and withdrawals.
|
||||
type RISMessage struct {
|
||||
Type string `json:"type"`
|
||||
Timestamp float64 `json:"timestamp"`
|
||||
ParsedTimestamp time.Time `json:"-"` // Parsed from Timestamp field
|
||||
Peer string `json:"peer"`
|
||||
PeerASN string `json:"peer_asn"`
|
||||
ID string `json:"id"`
|
||||
Host string `json:"host"`
|
||||
RRC string `json:"rrc,omitempty"`
|
||||
MrtTime float64 `json:"mrt_time,omitempty"`
|
||||
SocketTime float64 `json:"socket_time,omitempty"`
|
||||
Path ASPath `json:"path,omitempty"`
|
||||
Community [][]int `json:"community,omitempty"`
|
||||
Origin string `json:"origin,omitempty"`
|
||||
MED *int `json:"med,omitempty"`
|
||||
LocalPref *int `json:"local_pref,omitempty"`
|
||||
Announcements []RISAnnouncement `json:"announcements,omitempty"`
|
||||
Withdrawals []string `json:"withdrawals,omitempty"`
|
||||
Raw string `json:"raw,omitempty"`
|
||||
Type string `json:"type"`
|
||||
Timestamp float64 `json:"timestamp"`
|
||||
ParsedTimestamp time.Time `json:"-"` // Parsed from Timestamp field
|
||||
Peer string `json:"peer"`
|
||||
PeerASN string `json:"peer_asn"`
|
||||
ID string `json:"id"`
|
||||
Host string `json:"host"`
|
||||
RRC string `json:"rrc,omitempty"`
|
||||
MrtTime float64 `json:"mrt_time,omitempty"`
|
||||
SocketTime float64 `json:"socket_time,omitempty"`
|
||||
Path ASPath `json:"path,omitempty"`
|
||||
// Community and Raw are present in the feed but read by no handler.
|
||||
// They are the largest fields on a message that lives in up to four
|
||||
// handler queues, so json:"-" keeps them out of the decoded message
|
||||
// to save queue memory. Do not decode them without a consumer.
|
||||
Community [][]int `json:"-"`
|
||||
Origin string `json:"origin,omitempty"`
|
||||
MED *int `json:"med,omitempty"`
|
||||
LocalPref *int `json:"local_pref,omitempty"`
|
||||
Announcements []RISAnnouncement `json:"announcements,omitempty"`
|
||||
Withdrawals []string `json:"withdrawals,omitempty"`
|
||||
Raw string `json:"-"`
|
||||
}
|
||||
|
||||
// RISAnnouncement represents a BGP route announcement within a RIS message.
|
||||
|
||||
Reference in New Issue
Block a user