pass of comments
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
42e2a23e26
commit
80e64a3760
|
@ -577,7 +577,7 @@ func (e *Exporter) collectHotspotMetrics(wg *sync.WaitGroup, ch chan<- prometheu
|
||||||
func (e *Exporter) collectHotspotActivityMetrics(wg *sync.WaitGroup, ch chan<- prometheus.Metric, account *Account, hotspotData heliumapi.AccountHotspot) {
|
func (e *Exporter) collectHotspotActivityMetrics(wg *sync.WaitGroup, ch chan<- prometheus.Metric, account *Account, hotspotData heliumapi.AccountHotspot) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
|
|
||||||
hotspotActivityForAddress, err := heliumapi.GetHotspotActivityCount(hotspotData.Address)
|
hotspotActivityForAddress, err := heliumapi.GetHotspotActivityCounts(hotspotData.Address)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
return
|
return
|
||||||
|
|
1
go.mod
1
go.mod
|
@ -11,7 +11,6 @@ require (
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
|
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
|
||||||
github.com/prometheus/client_model v0.2.0 // indirect
|
github.com/prometheus/client_model v0.2.0 // indirect
|
||||||
github.com/prometheus/common v0.29.0 // indirect
|
github.com/prometheus/common v0.29.0 // indirect
|
||||||
github.com/prometheus/exporter-toolkit v0.6.1 // indirect
|
|
||||||
github.com/prometheus/procfs v0.6.0 // indirect
|
github.com/prometheus/procfs v0.6.0 // indirect
|
||||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 // indirect
|
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 // indirect
|
||||||
google.golang.org/protobuf v1.26.0-rc.1 // indirect
|
google.golang.org/protobuf v1.26.0-rc.1 // indirect
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"github.com/helium-blockchain-exporter/heliumapi/activity"
|
"github.com/helium-blockchain-exporter/heliumapi/activity"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// query https://docs.helium.com/api/blockchain/accounts#account-for-address
|
||||||
func GetAccountForAddress(account string) (*Account, error) {
|
func GetAccountForAddress(account string) (*Account, error) {
|
||||||
path := "/v1/accounts/" + account
|
path := "/v1/accounts/" + account
|
||||||
|
|
||||||
|
@ -27,6 +28,7 @@ func GetAccountForAddress(account string) (*Account, error) {
|
||||||
return &respobject.Data, nil
|
return &respobject.Data, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// query https://docs.helium.com/api/blockchain/accounts#activity-for-account
|
||||||
func GetActivityForAccount(account string, filterTypes []string, minTime *time.Time, maxTime *time.Time) (*activity.Activities, error) {
|
func GetActivityForAccount(account string, filterTypes []string, minTime *time.Time, maxTime *time.Time) (*activity.Activities, error) {
|
||||||
path := "/v1/accounts/" + account + "/activity"
|
path := "/v1/accounts/" + account + "/activity"
|
||||||
params := map[string]string{}
|
params := map[string]string{}
|
||||||
|
@ -57,6 +59,7 @@ func GetActivityForAccount(account string, filterTypes []string, minTime *time.T
|
||||||
return activity.NewActivities(combinedResp)
|
return activity.NewActivities(combinedResp)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// query https://docs.helium.com/api/blockchain/accounts#activity-counts-for-account
|
||||||
func GetActivityCountsForAccount(account string) (*ActivityCounts, error) {
|
func GetActivityCountsForAccount(account string) (*ActivityCounts, error) {
|
||||||
path := "/v1/accounts/" + account + "/activity/count"
|
path := "/v1/accounts/" + account + "/activity/count"
|
||||||
|
|
||||||
|
@ -76,6 +79,7 @@ func GetActivityCountsForAccount(account string) (*ActivityCounts, error) {
|
||||||
return &respobject.Data, nil
|
return &respobject.Data, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// query https://docs.helium.com/api/blockchain/accounts#reward-totals-for-an-account
|
||||||
func GetRewardTotalsForAccount(account string, minTime *time.Time, maxTime *time.Time) (*RewardTotal, error) {
|
func GetRewardTotalsForAccount(account string, minTime *time.Time, maxTime *time.Time) (*RewardTotal, error) {
|
||||||
path := "/v1/accounts/" + account + "/rewards/sum"
|
path := "/v1/accounts/" + account + "/rewards/sum"
|
||||||
params := map[string]string{}
|
params := map[string]string{}
|
||||||
|
@ -102,6 +106,7 @@ func GetRewardTotalsForAccount(account string, minTime *time.Time, maxTime *time
|
||||||
return &respobject.Data, nil
|
return &respobject.Data, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// query https://docs.helium.com/api/blockchain/accounts#hotspots-for-account
|
||||||
func GetHotspotsForAccount(account string) (*[]AccountHotspot, error) {
|
func GetHotspotsForAccount(account string) (*[]AccountHotspot, error) {
|
||||||
path := "/v1/accounts/" + account + "/hotspots"
|
path := "/v1/accounts/" + account + "/hotspots"
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,11 @@ type ActivityResp struct {
|
||||||
Data []json.RawMessage `json:"data"`
|
Data []json.RawMessage `json:"data"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Parse the response from the activity api.
|
||||||
|
// The helium api return a list of of activities in an array with mixed type.
|
||||||
|
// In order to operate on the array, we determine the type using the "type"
|
||||||
|
// property, unmarshal the activity with the proper model, and add it to the proper
|
||||||
|
// array in an Activities structure.
|
||||||
func NewActivities(resp ActivityResp) (*Activities, error) {
|
func NewActivities(resp ActivityResp) (*Activities, error) {
|
||||||
type ActivityType struct {
|
type ActivityType struct {
|
||||||
Type string `json:"type"`
|
Type string `json:"type"`
|
||||||
|
|
|
@ -6,7 +6,8 @@ import (
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetHotspotActivityCount(hotspot string) (*ActivityCounts, error) {
|
// query https://docs.helium.com/api/blockchain/hotspots#hotspots-activity-counts
|
||||||
|
func GetHotspotActivityCounts(hotspot string) (*ActivityCounts, error) {
|
||||||
path := "/v1/hotspots/" + hotspot + "/activity/count"
|
path := "/v1/hotspots/" + hotspot + "/activity/count"
|
||||||
|
|
||||||
// query the api
|
// query the api
|
||||||
|
@ -25,6 +26,7 @@ func GetHotspotActivityCount(hotspot string) (*ActivityCounts, error) {
|
||||||
return &respobject.Data, nil
|
return &respobject.Data, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// query https://docs.helium.com/api/blockchain/hotspots#reward-total-for-a-hotspot
|
||||||
func GetRewardsTotalForHotspot(hotspot string, minTime *time.Time, maxTime *time.Time) (*RewardTotal, error) {
|
func GetRewardsTotalForHotspot(hotspot string, minTime *time.Time, maxTime *time.Time) (*RewardTotal, error) {
|
||||||
path := "/v1/hotspots/" + hotspot + "/rewards/sum"
|
path := "/v1/hotspots/" + hotspot + "/rewards/sum"
|
||||||
params := map[string]string{}
|
params := map[string]string{}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// query https://docs.helium.com/api/blockchain/oracle-prices#current-oracle-price
|
||||||
func GetCurrentOraclePrice() (*CurrentOraclePrice, error) {
|
func GetCurrentOraclePrice() (*CurrentOraclePrice, error) {
|
||||||
path := "/v1/oracle/prices/current"
|
path := "/v1/oracle/prices/current"
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ var (
|
||||||
client = &http.Client{}
|
client = &http.Client{}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// createGetRequest create a GET request to the helium api
|
||||||
func createGetRequest(path string, params map[string]string) (*http.Request, error) {
|
func createGetRequest(path string, params map[string]string) (*http.Request, error) {
|
||||||
req, err := http.NewRequest("GET", fmt.Sprintf("%s/%s", ApiUrl, path), nil)
|
req, err := http.NewRequest("GET", fmt.Sprintf("%s/%s", ApiUrl, path), nil)
|
||||||
|
|
||||||
|
@ -33,6 +34,7 @@ func createGetRequest(path string, params map[string]string) (*http.Request, err
|
||||||
return req, err
|
return req, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// getHeliumApi query a regular helium api endpoint
|
||||||
func getHeliumApi(path string, params *map[string]string) ([]byte, error) {
|
func getHeliumApi(path string, params *map[string]string) ([]byte, error) {
|
||||||
// if params is nil, set it to an empty map
|
// if params is nil, set it to an empty map
|
||||||
if params == nil {
|
if params == nil {
|
||||||
|
@ -60,6 +62,9 @@ func getHeliumApi(path string, params *map[string]string) ([]byte, error) {
|
||||||
return body, nil
|
return body, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// getHeliumApiWithCursor query a helium api with a cursor
|
||||||
|
// It will continue to query the api until all the cursors are exhausted. Combine all the
|
||||||
|
// responses in a single object.
|
||||||
func getHeliumApiWithCursor(path string, params *map[string]string) ([][]byte, error) {
|
func getHeliumApiWithCursor(path string, params *map[string]string) ([][]byte, error) {
|
||||||
// if params is nil, set it to an empty map
|
// if params is nil, set it to an empty map
|
||||||
if params == nil {
|
if params == nil {
|
||||||
|
|
|
@ -5,6 +5,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// query https://docs.helium.com/api/blockchain/stats#blockchain-stats
|
||||||
func GetBlockchainStats() (*BlockchainStats, error) {
|
func GetBlockchainStats() (*BlockchainStats, error) {
|
||||||
path := "/v1/stats"
|
path := "/v1/stats"
|
||||||
|
|
||||||
|
|
Reference in New Issue