schema

package
v2.4.3+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 5, 2020 License: Apache-2.0 Imports: 24 Imported by: 0

README

Schema includes bigquery schema (json) files, and code associated with populating bigquery entities.

Parsers in mlab-sandbox and mlab-staging target datasets that are in the same project. Parsers in mlab-oti target datasets in the measurement-lab project.

Today, all parsers write to the base_tables dataset. Soon, they will be changed to write to the incoming dataset, and deduplicated data will be written to base_tables. See https://github.com/m-lab/etl/issues/387 for updates.

NDT

legacy.json contains the schema downloaded from the existing ndt.all tables. It has been ordered for easy comparison against the new schema.

ndt.json contains the initial schema for the NDT tables. It can be used to create a new table in mlab-sandbox project by invoking:

bq --project_id mlab-sandbox mk --time_partitioning_type=DAY \
    --schema schema/ndt.json -t base_tables.ndt

ndt_delta.json contains another NDT schema, including a repeated "delta" field, intended to contain snapshot deltas. To create a new table:

bq --project_id mlab-sandbox mk --time_partitioning_type=DAY \
    --schema schema/ndt_delta.json -t base_tables.ndt_delta

As of May 2017, there are (still) differences between the legacy and NDT schema that may need to be addressed.

Paris-traceroute

pt.json contains the schema for paris traceroute tables. To create a new table:

bq --project_id mlab-sandbox mk --time_partitioning_type=DAY \
    --schema schema/pt.json -t base_tables.traceroute

Sidestream

ss.json contains the schema for sidestream tables. To create a new table:

bq --project_id mlab-sandbox mk --time_partitioning_type=DAY \
    --schema schema/ss.json -t base_tables.sidestream

Switch - DISCO

switch.json contains the schema for DISCO tables. To create a new table:

bq --project_id mlab-sandbox mk --time_partitioning_type=DAY \
    --schema schema/switch.json -t base_tables.switch

Documentation

Overview

Package schema generated by go-bindata.// sources: descriptions/NDT5ResultRow.yaml descriptions/NDT7ResultRow.yaml descriptions/PTTest.yaml descriptions/README.md descriptions/TCPRow.yaml descriptions/toplevel.yaml

This files contains schema for Paris TraceRoute tests.

This files contains schema for SideStream tests. Any changes here should also be made in ss.json

The schema package provides an interface for the flexible map-based full schema for web100 tests.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Asset

func Asset(name string) ([]byte, error)

Asset loads and returns the asset for the given name. It returns an error if the asset could not be found or could not be loaded.

func AssetDir

func AssetDir(name string) ([]string, error)

AssetDir returns the file names below a certain directory embedded in the file by go-bindata. For example if you run go-bindata on data/... and data contains the following hierarchy:

data/
  foo.txt
  img/
    a.png
    b.png

then AssetDir("data") would return []string{"foo.txt", "img"} AssetDir("data/img") would return []string{"a.png", "b.png"} AssetDir("foo.txt") and AssetDir("nonexistent") would return an error AssetDir("") will return []string{"data"}.

func AssetInfo

func AssetInfo(name string) (os.FileInfo, error)

AssetInfo loads and returns the asset info for the given name. It returns an error if the asset could not be found or could not be loaded.

func AssetNames

func AssetNames() []string

AssetNames returns the names of the assets.

func FindSchemaDocsFor

func FindSchemaDocsFor(value interface{}) []bqx.SchemaDoc

FindSchemaDocsFor should be used by parser row types to associate bigquery field descriptions with a schema generated from a row type.

func MustAsset

func MustAsset(name string) []byte

MustAsset is like Asset but panics when Asset would return an error. It simplifies safe initialization of global variables.

func RestoreAsset

func RestoreAsset(dir, name string) error

RestoreAsset restores an asset under the given directory

func RestoreAssets

func RestoreAssets(dir, name string) error

RestoreAssets restores an asset under the given directory recursively

Types

type AnnotationRow

type AnnotationRow struct {
	UUID   string                      `bigquery:"id" json:"id"` // NOTE: there is no 'a' record for AnnotationRows.
	Server annotator.ServerAnnotations `bigquery:"server" json:"server"`
	Client annotator.ClientAnnotations `bigquery:"client" json:"client"`
	Parser ParseInfo                   `bigquery:"parser" json:"parser"`
	Date   civil.Date                  `bigquery:"date" json:"date"`

	// NOT part of struct schema. Included only to provide a fake annotator interface.
	row.NullAnnotator `bigquery:"-"`
}

AnnotationRow defines the BQ schema using 'Standard Columns' conventions for the annotation datatype produced by the uuid-annotator.

func (*AnnotationRow) Schema

func (row *AnnotationRow) Schema() (bigquery.Schema, error)

Schema returns the BigQuery schema for NDT7ResultRow.

type ClientInfo

type ClientInfo struct {
	IP   string
	Port uint16

	Geo     *api.GeolocationIP
	Network *api.ASData // NOTE: dominant ASN is available at top level.
}

ClientInfo details various information about the client.

type HopIP

type HopIP struct {
	IP          string `json:"ip,string"`
	City        string `json:"city,string"`
	CountryCode string `json:"country_code,string"`
	Hostname    string `json:"hostname,string"`
	ASN         uint32 `json:"asn,uint32"`
}
type HopLink struct {
	HopDstIP string     `json:"hop_dst_ip,string"`
	TTL      int64      `json:"ttl,int64"`
	Probes   []HopProbe `json:"probes"`
}

type HopProbe

type HopProbe struct {
	Flowid int64     `json:"flowid,int64"`
	Rtt    []float64 `json:"rtt"`
}

type NDT5ResultRow

type NDT5ResultRow struct {
	ParseInfo *ParseInfoV0
	TestID    string          `json:"test_id,string" bigquery:"test_id"`
	LogTime   int64           `json:"log_time,int64" bigquery:"log_time"`
	Result    data.NDT5Result `json:"result" bigquery:"result"`

	// NOT part of struct schema. Included only to provide a fake annotator interface.
	row.NullAnnotator `bigquery:"-"`
}

NDT5ResultRow defines the BQ schema for the data.NDT5Result produced by the ndt-server for NDT client measurements.

func (*NDT5ResultRow) Schema

func (row *NDT5ResultRow) Schema() (bigquery.Schema, error)

Schema returns the BigQuery schema for NDT5ResultRow.

type NDT7ResultRow

type NDT7ResultRow struct {
	ID     string          `bigquery:"id"`
	A      NDT7Summary     `bigquery:"a"`
	Parser ParseInfo       `bigquery:"parser"`
	Date   civil.Date      `bigquery:"date"`
	Raw    data.NDT7Result `bigquery:"raw"`

	// NOT part of struct schema. Included only to provide a fake annotator interface.
	row.NullAnnotator `bigquery:"-"`
}

NDT7ResultRow defines the BQ schema using 'Standard Columns' conventions for the data.NDT7Result produced by the ndt-server for NDT7 client measurements.

func (*NDT7ResultRow) Schema

func (row *NDT7ResultRow) Schema() (bigquery.Schema, error)

Schema returns the BigQuery schema for NDT7ResultRow.

type NDT7Summary

type NDT7Summary struct {
	UUID               string
	TestTime           time.Time
	CongestionControl  string
	MeanThroughputMbps float64
	MinRTT             float64
	LossRate           float64
}

NDT7Summary contains fields summarizing or derived from the raw data.

type PTTest

type PTTest struct {
	UUID           string       `json:"uuid,string" bigquery:"uuid"`
	TestTime       time.Time    `json:"testtime"`
	Parseinfo      ParseInfoV0  `json:"parseinfo"`
	StartTime      int64        `json:"start_time,int64" bigquery:"start_time"`
	StopTime       int64        `json:"stop_time,int64" bigquery:"stop_time"`
	ScamperVersion string       `json:"scamper_version,string" bigquery:"scamper_version"`
	Source         ServerInfo   `json:"source"`
	Destination    ClientInfo   `json:"destination"`
	ProbeSize      int64        `json:"probe_size,int64"`
	ProbeC         int64        `json:"probec,int64"`
	Hop            []ScamperHop `json:"hop"`
	ExpVersion     string       `json:"exp_version,string" bigquery:"exp_version"`
	CachedResult   bool         `json:"cached_result,bool" bigquery:"cached_result"`
}

func (*PTTest) AnnotateClients

func (row *PTTest) AnnotateClients(annMap map[string]*api.Annotations) error

AnnotateClients adds the client annotations. See parser.Annotatable annMap must not be null

func (*PTTest) AnnotateHops

func (row *PTTest) AnnotateHops(annMap map[string]*api.Annotations) error

func (*PTTest) AnnotateServer

func (row *PTTest) AnnotateServer(local *api.Annotations) error

AnnotateServer adds the server annotations. See parser.Annotatable local must not be nil

func (*PTTest) GetClientIPs

func (row *PTTest) GetClientIPs() []string

GetClientIPs returns the client (remote) IP for annotation. See parser.Annotatable

func (*PTTest) GetLogTime

func (row *PTTest) GetLogTime() time.Time

GetLogTime returns the timestamp that should be used for annotation.

func (*PTTest) GetServerIP

func (row *PTTest) GetServerIP() string

GetServerIP returns the server (local) IP for annotation. See parser.Annotatable

func (*PTTest) Schema

func (row *PTTest) Schema() (bigquery.Schema, error)

Schema returns the Bigquery schema for PTTest.

type ParseInfo

type ParseInfo struct {
	Version    string
	Time       time.Time
	ArchiveURL string
	Filename   string
	Priority   int64
}

ParseInfo provides details about the parsed row. Uses 'Standard Column' names.

type ParseInfoV0

type ParseInfoV0 struct {
	TaskFileName  string // The tar file containing this test.
	ParseTime     time.Time
	ParserVersion string
	Filename      string
}

ParseInfoV0 provides details about the parsing of this row.

type SS

type SS struct {
	TestID        string    `json:"test_id,string" bigquery:"test_id"`
	Project       int64     `json:"project,int64" bigquery:"project"`
	LogTime       int64     `json:"log_time,int64" bigquery:"log_time"`
	ParseTime     time.Time `bigquery:"parse_time" bigquery:"parse_time"`
	ParserVersion string    `bigquery:"parser_version" bigquery:"parser_version"`
	TaskFileName  string    `bigquery:"task_filename" bigquery:"task_filename"`

	Type             int64          `json:"type,int64"`
	Web100_log_entry Web100LogEntry `json:"web100_log_entry"`
}

func (*SS) AnnotateClients

func (ss *SS) AnnotateClients(annMap map[string]*api.Annotations) error

AnnotateClients adds the client annotations. See parser.Annotatable

func (*SS) AnnotateServer

func (ss *SS) AnnotateServer(local *api.Annotations) error

AnnotateServer adds the server annotations. See parser.Annotatable

func (*SS) GetClientIPs

func (ss *SS) GetClientIPs() []string

GetClientIPs returns the client (remote) IP for annotation. See parser.Annotatable

func (*SS) GetLogTime

func (ss *SS) GetLogTime() time.Time

GetLogTime returns the timestamp that should be used for annotation.

func (*SS) GetServerIP

func (ss *SS) GetServerIP() string

GetServerIP returns the server (local) IP for annotation. See parser.Annotatable

type Sample

type Sample struct {
	Timestamp int64   `json:"timestamp,int64" bigquery:"timestamp"`
	Value     float32 `json:"value,float32" bigquery:"value"`
}

Sample is an individual measurement taken by DISCO.

type ScamperHop

type ScamperHop struct {
	Source HopIP     `json:"source"`
	Linkc  int64     `json:"linkc,int64"`
	Links  []HopLink `json:"link"`
}

type ServerInfo

type ServerInfo struct {
	IP   string
	Port uint16
	IATA string

	Geo     *api.GeolocationIP
	Network *api.ASData // NOTE: dominant ASN is available at top level.
}

ServerInfo details various information about the server.

type SwitchStats

type SwitchStats struct {
	TaskFilename  string    `json:"task_filename,string" bigquery:"task_filename"`
	TestID        string    `json:"test_id,string" bigquery:"test_id"`
	ParseTime     time.Time `json:"parse_time" bigquery:"parse_time"`
	ParserVersion string    `json:"parser_version,string" bigquery:"parser_version"`
	LogTime       int64     `json:"log_time,int64" bigquery:"log_time"`
	Sample        []Sample  `json:"sample" bigquery:"sample"`
	Metric        string    `json:"metric" bigquery:"metric"`
	Hostname      string    `json:"hostname" bigquery:"hostname"`
	Experiment    string    `json:"experiment" bigquery:"experiment"`
}

SwitchStats represents a row of data taken from the raw DISCO export file.

func (*SwitchStats) Size

func (s *SwitchStats) Size() int

Size estimates the number of bytes in the SwitchStats object.

type TCPRow

type TCPRow struct {
	UUID     string    // Top level just because
	TestTime time.Time // Must be top level for partitioning

	ClientASN uint32 // Top level for clustering
	ServerASN uint32 // Top level for clustering

	ParseInfo *ParseInfoV0

	SockID inetdiag.SockID

	Server *ServerInfo
	Client *ClientInfo

	FinalSnapshot *snapshot.Snapshot

	Snapshots []*snapshot.Snapshot
}

TCPRow describes a single BQ row of TCPInfo data.

func (*TCPRow) AnnotateClients

func (row *TCPRow) AnnotateClients(annMap map[string]*api.Annotations) error

AnnotateClients adds the client annotations. See parser.Annotatable annMap must not be null

func (*TCPRow) AnnotateServer

func (row *TCPRow) AnnotateServer(local *api.Annotations) error

AnnotateServer adds the server annotations. See parser.Annotatable local must not be nil

func (*TCPRow) CopySocketInfo

func (row *TCPRow) CopySocketInfo()

CopySocketInfo creates ServerInfo and ClientInfo with IP and port. Should only be called after SockID is populated.

func (*TCPRow) GetClientIPs

func (row *TCPRow) GetClientIPs() []string

GetClientIPs returns the client (remote) IP for annotation. See parser.Annotatable

func (*TCPRow) GetLogTime

func (row *TCPRow) GetLogTime() time.Time

GetLogTime returns the timestamp that should be used for annotation.

func (*TCPRow) GetServerIP

func (row *TCPRow) GetServerIP() string

GetServerIP returns the server (local) IP for annotation. See parser.Annotatable

func (*TCPRow) Save

func (row *TCPRow) Save() (map[string]bigquery.Value, string, error)

Save implements bigquery.ValueSaver

func (*TCPRow) Schema

func (row *TCPRow) Schema() (bigquery.Schema, error)

Schema returns the Bigquery schema for TCPRow.

type Web100ConnectionSpecification

type Web100ConnectionSpecification struct {
	Local_ip           string            `json:"local_ip,string"`
	Local_af           int64             `json:"local_af,int64"`
	Local_port         int64             `json:"local_port,int64"`
	Remote_ip          string            `json:"remote_ip,string"`
	Remote_port        int64             `json:"remote_port,int64"`
	Local_geolocation  api.GeolocationIP `json:"local_geolocation"`
	Remote_geolocation api.GeolocationIP `json:"remote_geolocation"`
}

type Web100LogEntry

type Web100LogEntry struct {
	LogTime         int64                         `json:"log_time,int64" bigquery:"log_time"`
	Version         string                        `json:"version,string"`
	Group_name      string                        `json:"group_name,string"`
	Connection_spec Web100ConnectionSpecification `json:"connection_spec"`
	Snap            Web100Snap                    `json:"snap"`
}

type Web100Snap

type Web100Snap struct {
	AbruptTimeouts       int64  `json:"AbruptTimeouts,int64"`
	ActiveOpen           int64  `json:"ActiveOpen,int64"`
	CERcvd               int64  `json:"CERcvd,int64"`
	CongAvoid            int64  `json:"CongAvoid,int64"`
	CongOverCount        int64  `json:"CongOverCount,int64"`
	CongSignals          int64  `json:"CongSignals,int64"`
	CountRTT             int64  `json:"CountRTT,int64"`
	CurAppRQueue         int64  `json:"CurAppRQueue,int64"`
	CurAppWQueue         int64  `json:"CurAppWQueue,int64"`
	CurCwnd              int64  `json:"CurCwnd,int64"`
	CurMSS               int64  `json:"CurMSS,int64"`
	CurRTO               int64  `json:"CurRTO,int64"`
	CurReasmQueue        int64  `json:"CurReasmQueue,int64"`
	CurRetxQueue         int64  `json:"CurRetxQueue,int64"`
	CurRwinRcvd          int64  `json:"CurRwinRcvd,int64"`
	CurRwinSent          int64  `json:"CurRwinSent,int64"`
	CurSsthresh          int64  `json:"CurSsthresh,int64"`
	CurTimeoutCount      int64  `json:"CurTimeoutCount,int64"`
	DSACKDups            int64  `json:"DSACKDups,int64"`
	DataOctetsIn         int64  `json:"DataOctetsIn,int64"`
	DataOctetsOut        int64  `json:"DataOctetsOut,int64"`
	DataSegsIn           int64  `json:"DataSegsIn,int64"`
	DataSegsOut          int64  `json:"DataSegsOut,int64"`
	DupAckEpisodes       int64  `json:"DupAckEpisodes,int64"`
	DupAcksIn            int64  `json:"DupAcksIn,int64"`
	DupAcksOut           int64  `json:"DupAcksOut,int64"`
	Duration             int64  `json:"Duration,int64"`
	ECESent              int64  `json:"ECESent,int64"`
	ECN                  int64  `json:"ECN,int64"`
	ECNNonceRcvd         int64  `json:"ECNNonceRcvd,int64"`
	ECNsignals           int64  `json:"ECNsignals,int64"`
	ElapsedMicroSecs     int64  `json:"ElapsedMicroSecs,int64"`
	ElapsedSecs          int64  `json:"ElapsedSecs,int64"`
	FastRetran           int64  `json:"FastRetran,int64"`
	HCDataOctetsIn       int64  `json:"HCDataOctetsIn,int64"`
	HCDataOctetsOut      int64  `json:"HCDataOctetsOut,int64"`
	HCSumRTT             int64  `json:"HCSumRTT,int64"`
	HCThruOctetsAcked    int64  `json:"HCThruOctetsAcked,int64"`
	HCThruOctetsReceived int64  `json:"HCThruOctetsReceived,int64"`
	InRecovery           int64  `json:"InRecovery,int64"`
	IpTosIn              int64  `json:"IpTosIn,int64"`
	IpTosOut             int64  `json:"IpTosOut,int64"`
	IpTtl                int64  `json:"IpTtl,int64"`
	LimCwnd              int64  `json:"LimCwnd,int64"`
	LimMSS               int64  `json:"LimMSS,int64"`
	LimRwin              int64  `json:"LimRwin,int64"`
	LimSsthresh          int64  `json:"LimSsthresh,int64"`
	LocalAddress         string `json:"LocalAddress,string"`
	LocalAddressType     int64  `json:"LocalAddressType,int64"`
	LocalPort            int64  `json:"LocalPort,int64"`
	MSSRcvd              int64  `json:"MSSRcvd,int64"`
	MSSSent              int64  `json:"MSSSent,int64"`
	MaxAppRQueue         int64  `json:"MaxAppRQueue,int64"`
	MaxAppWQueue         int64  `json:"MaxAppWQueue,int64"`
	MaxCaCwnd            int64  `json:"MaxCaCwnd,int64"`
	MaxMSS               int64  `json:"MaxMSS,int64"`
	MaxPipeSize          int64  `json:"MaxPipeSize,int64"`
	MaxRTO               int64  `json:"MaxRTO,int64"`
	MaxRTT               int64  `json:"MaxRTT,int64"`
	MaxReasmQueue        int64  `json:"MaxReasmQueue,int64"`
	MaxRetxQueue         int64  `json:"MaxRetxQueue,int64"`
	MaxRwinRcvd          int64  `json:"MaxRwinRcvd,int64"`
	MaxRwinSent          int64  `json:"MaxRwinSent,int64"`
	MaxSsCwnd            int64  `json:"MaxSsCwnd,int64"`
	MaxSsthresh          int64  `json:"MaxSsthresh,int64"`
	MinMSS               int64  `json:"MinMSS,int64"`
	MinRTO               int64  `json:"MinRTO,int64"`
	MinRTT               int64  `json:"MinRTT,int64"`
	MinRwinRcvd          int64  `json:"MinRwinRcvd,int64"`
	MinRwinSent          int64  `json:"MinRwinSent,int64"`
	MinSsthresh          int64  `json:"MinSsthresh,int64"`
	Nagle                int64  `json:"Nagle,int64"`
	NonRecovDA           int64  `json:"NonRecovDA,int64"`
	NonRecovDAEpisodes   int64  `json:"NonRecovDAEpisodes,int64"`
	OctetsRetrans        int64  `json:"OctetsRetrans,int64"`
	OtherReductions      int64  `json:"OtherReductions,int64"`
	PipeSize             int64  `json:"PipeSize,int64"`
	PostCongCountRTT     int64  `json:"PostCongCountRTT,int64"`
	PostCongSumRTT       int64  `json:"PostCongSumRTT,int64"`
	PreCongSumCwnd       int64  `json:"PreCongSumCwnd,int64"`
	PreCongSumRTT        int64  `json:"PreCongSumRTT,int64"`
	QuenchRcvd           int64  `json:"QuenchRcvd,int64"`
	RTTVar               int64  `json:"RTTVar,int64"`
	RcvNxt               int64  `json:"RcvNxt,int64"`
	RcvRTT               int64  `json:"RcvRTT,int64"`
	RcvWindScale         int64  `json:"RcvWindScale,int64"`
	RecInitial           int64  `json:"RecInitial,int64"`
	RemAddress           string `json:"RemAddress,string"`
	RemPort              int64  `json:"RemPort,int64"`
	RetranThresh         int64  `json:"RetranThresh,int64"`
	SACK                 int64  `json:"SACK,int64"`
	SACKBlocksRcvd       int64  `json:"SACKBlocksRcvd,int64"`
	SACKsRcvd            int64  `json:"SACKsRcvd,int64"`
	SampleRTT            int64  `json:"SampleRTT,int64"`
	SegsIn               int64  `json:"SegsIn,int64"`
	SegsOut              int64  `json:"SegsOut,int64"`
	SegsRetrans          int64  `json:"SegsRetrans,int64"`
	SendStall            int64  `json:"SendStall,int64"`
	SlowStart            int64  `json:"SlowStart,int64"`
	SmoothedRTT          int64  `json:"SmoothedRTT,int64"`
	SndInitial           int64  `json:"SndInitial,int64"`
	SndLimBytesCwnd      int64  `json:"SndLimBytesCwnd,int64"`
	SndLimBytesRwin      int64  `json:"SndLimBytesRwin,int64"`
	SndLimBytesSender    int64  `json:"SndLimBytesSender,int64"`
	SndLimTimeCwnd       int64  `json:"SndLimTimeCwnd,int64"`
	SndLimTimeRwin       int64  `json:"SndLimTimeRwin,int64"`
	SndLimTimeSnd        int64  `json:"SndLimTimeSnd,int64"`
	SndLimTransCwnd      int64  `json:"SndLimTransCwnd,int64"`
	SndLimTransRwin      int64  `json:"SndLimTransRwin,int64"`
	SndLimTransSnd       int64  `json:"SndLimTransSnd,int64"`
	SndMax               int64  `json:"SndMax,int64"`
	SndNxt               int64  `json:"SndNxt,int64"`
	SndUna               int64  `json:"SndUna,int64"`
	SndWindScale         int64  `json:"SndWindScale,int64"`
	SoftErrorReason      int64  `json:"SoftErrorReason,int64"`
	SoftErrors           int64  `json:"SoftErrors,int64"`
	SpuriousFrDetected   int64  `json:"SpuriousFrDetected,int64"`
	SpuriousRtoDetected  int64  `json:"SpuriousRtoDetected,int64"`
	StartTimeStamp       int64  `json:"StartTimeStamp,int64"`
	State                int64  `json:"State,int64"`
	SubsequentTimeouts   int64  `json:"SubsequentTimeouts,int64"`
	SumOctetsReordered   int64  `json:"SumOctetsReordered,int64"`
	SumRTT               int64  `json:"SumRTT,int64"`
	ThruOctetsAcked      int64  `json:"ThruOctetsAcked,int64"`
	ThruOctetsReceived   int64  `json:"ThruOctetsReceived,int64"`
	TimeStamps           int64  `json:"TimeStamps,int64"`
	TimeStampRcvd        bool   `json:"TimeStampRcvd,bool"`
	TimeStampSent        bool   `json:"TimeStampSent,bool"`
	Timeouts             int64  `json:"Timeouts,int64"`
	WAD_CwndAdjust       int64  `json:"WAD_CwndAdjust,int64"`
	WAD_IFQ              int64  `json:"WAD_IFQ,int64"`
	WAD_MaxBurst         int64  `json:"WAD_MaxBurst,int64"`
	WAD_MaxSsthresh      int64  `json:"WAD_MaxSsthresh,int64"`
	WAD_NoAI             int64  `json:"WAD_NoAI,int64"`
	WillSendSACK         int64  `json:"WillSendSACK,int64"`
	WillUseSACK          int64  `json:"WillUseSACK,int64"`
	WinScaleRcvd         int64  `json:"WinScaleRcvd,int64"`
	WinScaleSent         int64  `json:"WinScaleSent,int64"`
	X_OtherReductionsCM  int64  `json:"X_OtherReductionsCM,int64"`
	X_OtherReductionsCV  int64  `json:"X_OtherReductionsCV,int64"`
	X_Rcvbuf             int64  `json:"X_Rcvbuf,int64"`
	X_Sndbuf             int64  `json:"X_Sndbuf,int64"`
	X_dbg1               int64  `json:"X_dbg1,int64"`
	X_dbg2               int64  `json:"X_dbg2,int64"`
	X_dbg3               int64  `json:"X_dbg3,int64"`
	X_dbg4               int64  `json:"X_dbg4,int64"`
	X_rcv_ssthresh       int64  `json:"X_rcv_ssthresh,int64"`
	X_wnd_clamp          int64  `json:"X_wnd_clamp,int64"`
	ZeroRwinRcvd         int64  `json:"ZeroRwinRcvd,int64"`
	ZeroRwinSent         int64  `json:"ZeroRwinSent,int64"`
}

type Web100ValueMap

type Web100ValueMap map[string]bigquery.Value

Web100ValueMap implements the web100.Saver interface for recording web100 values.

func EmptyConnectionSpec

func EmptyConnectionSpec() Web100ValueMap

func EmptyGeolocation

func EmptyGeolocation() Web100ValueMap

func EmptySnap

func EmptySnap() Web100ValueMap

func EmptySnap10

func EmptySnap10() Web100ValueMap

func FullConnectionSpec

func FullConnectionSpec() Web100ValueMap

func FullGeolocation

func FullGeolocation() Web100ValueMap

func NewWeb100FullRecord

func NewWeb100FullRecord(version string, logTime int64, connSpec, snapValues map[string]bigquery.Value) Web100ValueMap

NewWeb100FullRecord creates a web100 value map with all supported fields. This is suitable when creating a schema definition for a new bigquery table.

func NewWeb100MinimalRecord

func NewWeb100MinimalRecord(version string, logTime int64, connSpec, snapValues Web100ValueMap, deltas []Web100ValueMap) Web100ValueMap

NewWeb100MinimalRecord creates a web100 value map with only the given fields. All undefined fields will be set to null after a BQ insert.

func NewWeb100Skeleton

func NewWeb100Skeleton() Web100ValueMap

NewWeb100Skeleton creates the tree structure, with no leaf fields.

func (Web100ValueMap) Get

func (vm Web100ValueMap) Get(name string) Web100ValueMap

Get returns the contained map, or nil if it doesn't exist. This works for either Web100ValueMap or map[string]bigquery.Value

func (Web100ValueMap) GetInt64

func (vm Web100ValueMap) GetInt64(path []string) (int64, bool)

Get the int64 at a path in the nested map. Return value, true if found, or 0, false if not found.

func (Web100ValueMap) GetMap

func (vm Web100ValueMap) GetMap(path []string) Web100ValueMap

Get the int64 at a path in the nested map. Return value or nil.

func (Web100ValueMap) GetString

func (vm Web100ValueMap) GetString(path []string) (string, bool)

Get the string at a path in the nested map. Return value, true if found, or nil, false if not found.

func (Web100ValueMap) Save

func (s Web100ValueMap) Save() (row map[string]bigquery.Value, insertID string, err error)

Save implements the bigquery.ValueSaver interface

func (Web100ValueMap) SetBool

func (s Web100ValueMap) SetBool(name string, value bool)

SetBool saves a boolean in a field with the given name.

func (Web100ValueMap) SetInt64

func (s Web100ValueMap) SetInt64(name string, value int64)

SetInt64 saves an int64 in a field with the given name.

func (Web100ValueMap) SetString

func (s Web100ValueMap) SetString(name string, value string)

SetString saves a string in a field with the given name.

func (Web100ValueMap) SubstituteInt64

func (r Web100ValueMap) SubstituteInt64(overwrite bool, target []string, source []string)

if overwrite is false, will only add missing values. if overwrite is true, will overwrite existing values.

func (Web100ValueMap) SubstituteString

func (r Web100ValueMap) SubstituteString(overwrite bool, target []string, source []string)

if overwrite is false, will only add missing values. if overwrite is true, will overwrite existing values.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL