Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
5cb1cccd
Commit
5cb1cccd
authored
Aug 23, 2017
by
Kubernetes Submit Queue
Committed by
GitHub
Aug 23, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #51138 from yujuhong/alpha-calls
Automatic merge from submit-queue GCE: Add functions for Alpha address and forwarding rules
parents
470eb922
0d1efd5e
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
131 additions
and
95 deletions
+131
-95
BUILD
pkg/cloudprovider/providers/gce/BUILD
+1
-0
gce_addresses.go
pkg/cloudprovider/providers/gce/gce_addresses.go
+23
-5
gce_addresses_fakes.go
pkg/cloudprovider/providers/gce/gce_addresses_fakes.go
+9
-0
gce_backendservice.go
pkg/cloudprovider/providers/gce/gce_backendservice.go
+1
-5
gce_cert.go
pkg/cloudprovider/providers/gce/gce_cert.go
+1
-5
gce_clusters.go
pkg/cloudprovider/providers/gce/gce_clusters.go
+1
-6
gce_disks.go
pkg/cloudprovider/providers/gce/gce_disks.go
+1
-5
gce_firewall.go
pkg/cloudprovider/providers/gce/gce_firewall.go
+1
-6
gce_forwardingrule.go
pkg/cloudprovider/providers/gce/gce_forwardingrule.go
+24
-6
gce_healthchecks.go
pkg/cloudprovider/providers/gce/gce_healthchecks.go
+1
-6
gce_instancegroup.go
pkg/cloudprovider/providers/gce/gce_instancegroup.go
+2
-9
gce_instances.go
pkg/cloudprovider/providers/gce/gce_instances.go
+1
-4
gce_interfaces.go
pkg/cloudprovider/providers/gce/gce_interfaces.go
+8
-1
gce_loadbalancer.go
pkg/cloudprovider/providers/gce/gce_loadbalancer.go
+1
-5
gce_routes.go
pkg/cloudprovider/providers/gce/gce_routes.go
+1
-5
gce_targetpool.go
pkg/cloudprovider/providers/gce/gce_targetpool.go
+2
-9
gce_targetproxy.go
pkg/cloudprovider/providers/gce/gce_targetproxy.go
+1
-5
gce_urlmap.go
pkg/cloudprovider/providers/gce/gce_urlmap.go
+1
-5
gce_zones.go
pkg/cloudprovider/providers/gce/gce_zones.go
+1
-5
metrics.go
pkg/cloudprovider/providers/gce/metrics.go
+22
-3
metrics_test.go
pkg/cloudprovider/providers/gce/metrics_test.go
+28
-0
No files found.
pkg/cloudprovider/providers/gce/BUILD
View file @
5cb1cccd
...
@@ -83,6 +83,7 @@ go_test(
...
@@ -83,6 +83,7 @@ go_test(
"gce_healthchecks_test.go",
"gce_healthchecks_test.go",
"gce_loadbalancer_external_test.go",
"gce_loadbalancer_external_test.go",
"gce_test.go",
"gce_test.go",
"metrics_test.go",
],
],
library = ":go_default_library",
library = ":go_default_library",
deps = [
deps = [
...
...
pkg/cloudprovider/providers/gce/gce_addresses.go
View file @
5cb1cccd
...
@@ -18,17 +18,18 @@ package gce
...
@@ -18,17 +18,18 @@ package gce
import
(
import
(
"fmt"
"fmt"
"time"
"github.com/golang/glog"
"github.com/golang/glog"
computealpha
"google.golang.org/api/compute/v0.alpha"
compute
"google.golang.org/api/compute/v1"
compute
"google.golang.org/api/compute/v1"
)
)
func
newAddressMetricContext
(
request
,
region
string
)
*
metricContext
{
func
newAddressMetricContext
(
request
,
region
string
)
*
metricContext
{
return
&
metricContext
{
return
newAddressMetricContextWithVersion
(
request
,
region
,
computeV1Version
)
start
:
time
.
Now
(),
}
attributes
:
[]
string
{
"address_"
+
request
,
region
,
unusedMetricLabel
},
}
func
newAddressMetricContextWithVersion
(
request
,
region
,
version
string
)
*
metricContext
{
return
newGenericMetricContext
(
"address"
,
request
,
region
,
unusedMetricLabel
,
version
)
}
}
// ReserveGlobalAddress creates a global address.
// ReserveGlobalAddress creates a global address.
...
@@ -71,6 +72,16 @@ func (gce *GCECloud) ReserveRegionAddress(addr *compute.Address, region string)
...
@@ -71,6 +72,16 @@ func (gce *GCECloud) ReserveRegionAddress(addr *compute.Address, region string)
return
gce
.
waitForRegionOp
(
op
,
region
,
mc
)
return
gce
.
waitForRegionOp
(
op
,
region
,
mc
)
}
}
// ReserveAlphaRegionAddress creates an Alpha, regional address.
func
(
gce
*
GCECloud
)
ReserveAlphaRegionAddress
(
addr
*
computealpha
.
Address
,
region
string
)
error
{
mc
:=
newAddressMetricContextWithVersion
(
"reserve"
,
region
,
computeAlphaVersion
)
op
,
err
:=
gce
.
serviceAlpha
.
Addresses
.
Insert
(
gce
.
projectID
,
region
,
addr
)
.
Do
()
if
err
!=
nil
{
return
mc
.
Observe
(
err
)
}
return
gce
.
waitForRegionOp
(
op
,
region
,
mc
)
}
// DeleteRegionAddress deletes a region address by name.
// DeleteRegionAddress deletes a region address by name.
func
(
gce
*
GCECloud
)
DeleteRegionAddress
(
name
,
region
string
)
error
{
func
(
gce
*
GCECloud
)
DeleteRegionAddress
(
name
,
region
string
)
error
{
mc
:=
newAddressMetricContext
(
"delete"
,
region
)
mc
:=
newAddressMetricContext
(
"delete"
,
region
)
...
@@ -88,6 +99,13 @@ func (gce *GCECloud) GetRegionAddress(name, region string) (*compute.Address, er
...
@@ -88,6 +99,13 @@ func (gce *GCECloud) GetRegionAddress(name, region string) (*compute.Address, er
return
v
,
mc
.
Observe
(
err
)
return
v
,
mc
.
Observe
(
err
)
}
}
// GetAlphaRegionAddress returns the Alpha, regional address by name.
func
(
gce
*
GCECloud
)
GetAlphaRegionAddress
(
name
,
region
string
)
(
*
computealpha
.
Address
,
error
)
{
mc
:=
newAddressMetricContextWithVersion
(
"get"
,
region
,
computeAlphaVersion
)
v
,
err
:=
gce
.
serviceAlpha
.
Addresses
.
Get
(
gce
.
projectID
,
region
,
name
)
.
Do
()
return
v
,
mc
.
Observe
(
err
)
}
// GetRegionAddressByIP returns the regional address matching the given IP
// GetRegionAddressByIP returns the regional address matching the given IP
// address.
// address.
func
(
gce
*
GCECloud
)
GetRegionAddressByIP
(
region
,
ipAddress
string
)
(
*
compute
.
Address
,
error
)
{
func
(
gce
*
GCECloud
)
GetRegionAddressByIP
(
region
,
ipAddress
string
)
(
*
compute
.
Address
,
error
)
{
...
...
pkg/cloudprovider/providers/gce/gce_addresses_fakes.go
View file @
5cb1cccd
...
@@ -20,6 +20,7 @@ import (
...
@@ -20,6 +20,7 @@ import (
"fmt"
"fmt"
"net/http"
"net/http"
computealpha
"google.golang.org/api/compute/v0.alpha"
compute
"google.golang.org/api/compute/v1"
compute
"google.golang.org/api/compute/v1"
"google.golang.org/api/googleapi"
"google.golang.org/api/googleapi"
)
)
...
@@ -103,3 +104,11 @@ func (cas *FakeCloudAddressService) GetRegionAddressByIP(region, ipAddress strin
...
@@ -103,3 +104,11 @@ func (cas *FakeCloudAddressService) GetRegionAddressByIP(region, ipAddress strin
}
}
return
nil
,
makeGoogleAPINotFoundError
(
""
)
return
nil
,
makeGoogleAPINotFoundError
(
""
)
}
}
func
(
cas
*
FakeCloudAddressService
)
GetAlphaRegionAddress
(
name
,
region
string
)
(
*
computealpha
.
Address
,
error
)
{
return
nil
,
fmt
.
Errorf
(
"not implemented"
)
}
func
(
cas
*
FakeCloudAddressService
)
ReserveAlphaRegionAddress
(
addr
*
computealpha
.
Address
,
region
string
)
error
{
return
fmt
.
Errorf
(
"not implemented"
)
}
pkg/cloudprovider/providers/gce/gce_backendservice.go
View file @
5cb1cccd
...
@@ -18,16 +18,12 @@ package gce
...
@@ -18,16 +18,12 @@ package gce
import
(
import
(
"net/http"
"net/http"
"time"
compute
"google.golang.org/api/compute/v1"
compute
"google.golang.org/api/compute/v1"
)
)
func
newBackendServiceMetricContext
(
request
,
region
string
)
*
metricContext
{
func
newBackendServiceMetricContext
(
request
,
region
string
)
*
metricContext
{
return
&
metricContext
{
return
newGenericMetricContext
(
"backendservice"
,
request
,
region
,
unusedMetricLabel
,
computeV1Version
)
start
:
time
.
Now
(),
attributes
:
[]
string
{
"backendservice_"
+
request
,
region
,
unusedMetricLabel
},
}
}
}
// GetGlobalBackendService retrieves a backend by name.
// GetGlobalBackendService retrieves a backend by name.
...
...
pkg/cloudprovider/providers/gce/gce_cert.go
View file @
5cb1cccd
...
@@ -18,16 +18,12 @@ package gce
...
@@ -18,16 +18,12 @@ package gce
import
(
import
(
"net/http"
"net/http"
"time"
compute
"google.golang.org/api/compute/v1"
compute
"google.golang.org/api/compute/v1"
)
)
func
newCertMetricContext
(
request
string
)
*
metricContext
{
func
newCertMetricContext
(
request
string
)
*
metricContext
{
return
&
metricContext
{
return
newGenericMetricContext
(
"cert"
,
request
,
unusedMetricLabel
,
unusedMetricLabel
,
computeV1Version
)
start
:
time
.
Now
(),
attributes
:
[]
string
{
"cert_"
+
request
,
unusedMetricLabel
,
unusedMetricLabel
},
}
}
}
// GetSslCertificate returns the SslCertificate by name.
// GetSslCertificate returns the SslCertificate by name.
...
...
pkg/cloudprovider/providers/gce/gce_clusters.go
View file @
5cb1cccd
...
@@ -16,13 +16,8 @@ limitations under the License.
...
@@ -16,13 +16,8 @@ limitations under the License.
package
gce
package
gce
import
"time"
func
newClustersMetricContext
(
request
,
zone
string
)
*
metricContext
{
func
newClustersMetricContext
(
request
,
zone
string
)
*
metricContext
{
return
&
metricContext
{
return
newGenericMetricContext
(
"clusters"
,
request
,
unusedMetricLabel
,
zone
,
computeV1Version
)
start
:
time
.
Now
(),
attributes
:
[]
string
{
"clusters_"
+
request
,
unusedMetricLabel
,
zone
},
}
}
}
func
(
gce
*
GCECloud
)
ListClusters
()
([]
string
,
error
)
{
func
(
gce
*
GCECloud
)
ListClusters
()
([]
string
,
error
)
{
...
...
pkg/cloudprovider/providers/gce/gce_disks.go
View file @
5cb1cccd
...
@@ -21,7 +21,6 @@ import (
...
@@ -21,7 +21,6 @@ import (
"fmt"
"fmt"
"net/http"
"net/http"
"strings"
"strings"
"time"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/types"
"k8s.io/kubernetes/pkg/cloudprovider"
"k8s.io/kubernetes/pkg/cloudprovider"
...
@@ -85,10 +84,7 @@ type GCEDisk struct {
...
@@ -85,10 +84,7 @@ type GCEDisk struct {
}
}
func
newDiskMetricContext
(
request
,
zone
string
)
*
metricContext
{
func
newDiskMetricContext
(
request
,
zone
string
)
*
metricContext
{
return
&
metricContext
{
return
newGenericMetricContext
(
"disk"
,
request
,
unusedMetricLabel
,
zone
,
computeV1Version
)
start
:
time
.
Now
(),
attributes
:
[]
string
{
"disk_"
+
request
,
unusedMetricLabel
,
zone
},
}
}
}
func
(
gce
*
GCECloud
)
AttachDisk
(
diskName
string
,
nodeName
types
.
NodeName
,
readOnly
bool
)
error
{
func
(
gce
*
GCECloud
)
AttachDisk
(
diskName
string
,
nodeName
types
.
NodeName
,
readOnly
bool
)
error
{
...
...
pkg/cloudprovider/providers/gce/gce_firewall.go
View file @
5cb1cccd
...
@@ -17,16 +17,11 @@ limitations under the License.
...
@@ -17,16 +17,11 @@ limitations under the License.
package
gce
package
gce
import
(
import
(
"time"
compute
"google.golang.org/api/compute/v1"
compute
"google.golang.org/api/compute/v1"
)
)
func
newFirewallMetricContext
(
request
string
)
*
metricContext
{
func
newFirewallMetricContext
(
request
string
)
*
metricContext
{
return
&
metricContext
{
return
newGenericMetricContext
(
"firewall"
,
request
,
unusedMetricLabel
,
unusedMetricLabel
,
computeV1Version
)
start
:
time
.
Now
(),
attributes
:
[]
string
{
"firewall_"
+
request
,
unusedMetricLabel
,
unusedMetricLabel
},
}
}
}
// GetFirewall returns the Firewall by name.
// GetFirewall returns the Firewall by name.
...
...
pkg/cloudprovider/providers/gce/gce_forwardingrule.go
View file @
5cb1cccd
...
@@ -17,16 +17,15 @@ limitations under the License.
...
@@ -17,16 +17,15 @@ limitations under the License.
package
gce
package
gce
import
(
import
(
"time"
computealpha
"google.golang.org/api/compute/v0.alpha"
compute
"google.golang.org/api/compute/v1"
compute
"google.golang.org/api/compute/v1"
)
)
func
newForwardingRuleMetricContext
(
request
,
region
string
)
*
metricContext
{
func
newForwardingRuleMetricContext
(
request
,
region
string
)
*
metricContext
{
return
&
metricContext
{
return
newForwardingRuleMetricContextWithVersion
(
request
,
region
,
computeV1Version
)
start
:
time
.
Now
(),
}
attributes
:
[]
string
{
"forwardingrule_"
+
request
,
region
,
unusedMetricLabel
},
func
newForwardingRuleMetricContextWithVersion
(
request
,
region
,
version
string
)
*
metricContext
{
}
return
newGenericMetricContext
(
"forwardingrule"
,
request
,
region
,
unusedMetricLabel
,
version
)
}
}
// CreateGlobalForwardingRule creates the passed GlobalForwardingRule
// CreateGlobalForwardingRule creates the passed GlobalForwardingRule
...
@@ -85,6 +84,13 @@ func (gce *GCECloud) GetRegionForwardingRule(name, region string) (*compute.Forw
...
@@ -85,6 +84,13 @@ func (gce *GCECloud) GetRegionForwardingRule(name, region string) (*compute.Forw
return
v
,
mc
.
Observe
(
err
)
return
v
,
mc
.
Observe
(
err
)
}
}
// GetAlphaRegionForwardingRule returns the Alpha forwarding rule by name & region.
func
(
gce
*
GCECloud
)
GetAlphaRegionForwardingRule
(
name
,
region
string
)
(
*
computealpha
.
ForwardingRule
,
error
)
{
mc
:=
newForwardingRuleMetricContextWithVersion
(
"get"
,
region
,
computeAlphaVersion
)
v
,
err
:=
gce
.
serviceAlpha
.
ForwardingRules
.
Get
(
gce
.
projectID
,
region
,
name
)
.
Do
()
return
v
,
mc
.
Observe
(
err
)
}
// ListRegionForwardingRules lists all RegionalForwardingRules in the project & region.
// ListRegionForwardingRules lists all RegionalForwardingRules in the project & region.
func
(
gce
*
GCECloud
)
ListRegionForwardingRules
(
region
string
)
(
*
compute
.
ForwardingRuleList
,
error
)
{
func
(
gce
*
GCECloud
)
ListRegionForwardingRules
(
region
string
)
(
*
compute
.
ForwardingRuleList
,
error
)
{
mc
:=
newForwardingRuleMetricContext
(
"list"
,
region
)
mc
:=
newForwardingRuleMetricContext
(
"list"
,
region
)
...
@@ -105,6 +111,18 @@ func (gce *GCECloud) CreateRegionForwardingRule(rule *compute.ForwardingRule, re
...
@@ -105,6 +111,18 @@ func (gce *GCECloud) CreateRegionForwardingRule(rule *compute.ForwardingRule, re
return
gce
.
waitForRegionOp
(
op
,
region
,
mc
)
return
gce
.
waitForRegionOp
(
op
,
region
,
mc
)
}
}
// CreateAlphaRegionForwardingRule creates and returns an Alpha
// forwarding fule in the given region.
func
(
gce
*
GCECloud
)
CreateAlphaRegionForwardingRule
(
rule
*
computealpha
.
ForwardingRule
,
region
string
)
error
{
mc
:=
newForwardingRuleMetricContextWithVersion
(
"create"
,
region
,
computeAlphaVersion
)
op
,
err
:=
gce
.
serviceAlpha
.
ForwardingRules
.
Insert
(
gce
.
projectID
,
region
,
rule
)
.
Do
()
if
err
!=
nil
{
return
mc
.
Observe
(
err
)
}
return
gce
.
waitForRegionOp
(
op
,
region
,
mc
)
}
// DeleteRegionForwardingRule deletes the RegionalForwardingRule by name & region.
// DeleteRegionForwardingRule deletes the RegionalForwardingRule by name & region.
func
(
gce
*
GCECloud
)
DeleteRegionForwardingRule
(
name
,
region
string
)
error
{
func
(
gce
*
GCECloud
)
DeleteRegionForwardingRule
(
name
,
region
string
)
error
{
mc
:=
newForwardingRuleMetricContext
(
"delete"
,
region
)
mc
:=
newForwardingRuleMetricContext
(
"delete"
,
region
)
...
...
pkg/cloudprovider/providers/gce/gce_healthchecks.go
View file @
5cb1cccd
...
@@ -17,8 +17,6 @@ limitations under the License.
...
@@ -17,8 +17,6 @@ limitations under the License.
package
gce
package
gce
import
(
import
(
"time"
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
"k8s.io/kubernetes/pkg/master/ports"
"k8s.io/kubernetes/pkg/master/ports"
utilversion
"k8s.io/kubernetes/pkg/util/version"
utilversion
"k8s.io/kubernetes/pkg/util/version"
...
@@ -45,10 +43,7 @@ func init() {
...
@@ -45,10 +43,7 @@ func init() {
}
}
func
newHealthcheckMetricContext
(
request
string
)
*
metricContext
{
func
newHealthcheckMetricContext
(
request
string
)
*
metricContext
{
return
&
metricContext
{
return
newGenericMetricContext
(
"healthcheck"
,
request
,
unusedMetricLabel
,
unusedMetricLabel
,
computeV1Version
)
start
:
time
.
Now
(),
attributes
:
[]
string
{
"healthcheck_"
+
request
,
unusedMetricLabel
,
unusedMetricLabel
},
}
}
}
// GetHttpHealthCheck returns the given HttpHealthCheck by name.
// GetHttpHealthCheck returns the given HttpHealthCheck by name.
...
...
pkg/cloudprovider/providers/gce/gce_instancegroup.go
View file @
5cb1cccd
...
@@ -16,17 +16,10 @@ limitations under the License.
...
@@ -16,17 +16,10 @@ limitations under the License.
package
gce
package
gce
import
(
import
compute
"google.golang.org/api/compute/v1"
"time"
compute
"google.golang.org/api/compute/v1"
)
func
newInstanceGroupMetricContext
(
request
string
,
zone
string
)
*
metricContext
{
func
newInstanceGroupMetricContext
(
request
string
,
zone
string
)
*
metricContext
{
return
&
metricContext
{
return
newGenericMetricContext
(
"instancegroup"
,
request
,
unusedMetricLabel
,
zone
,
computeV1Version
)
start
:
time
.
Now
(),
attributes
:
[]
string
{
"instancegroup_"
+
request
,
unusedMetricLabel
,
zone
},
}
}
}
// CreateInstanceGroup creates an instance group with the given
// CreateInstanceGroup creates an instance group with the given
...
...
pkg/cloudprovider/providers/gce/gce_instances.go
View file @
5cb1cccd
...
@@ -41,10 +41,7 @@ const (
...
@@ -41,10 +41,7 @@ const (
)
)
func
newInstancesMetricContext
(
request
,
zone
string
)
*
metricContext
{
func
newInstancesMetricContext
(
request
,
zone
string
)
*
metricContext
{
return
&
metricContext
{
return
newGenericMetricContext
(
"instances"
,
request
,
unusedMetricLabel
,
zone
,
computeV1Version
)
start
:
time
.
Now
(),
attributes
:
[]
string
{
"instances_"
+
request
,
unusedMetricLabel
,
zone
},
}
}
}
func
splitNodesByZone
(
nodes
[]
*
v1
.
Node
)
map
[
string
][]
*
v1
.
Node
{
func
splitNodesByZone
(
nodes
[]
*
v1
.
Node
)
map
[
string
][]
*
v1
.
Node
{
...
...
pkg/cloudprovider/providers/gce/gce_interfaces.go
View file @
5cb1cccd
...
@@ -16,7 +16,10 @@ limitations under the License.
...
@@ -16,7 +16,10 @@ limitations under the License.
package
gce
package
gce
import
compute
"google.golang.org/api/compute/v1"
import
(
computealpha
"google.golang.org/api/compute/v0.alpha"
compute
"google.golang.org/api/compute/v1"
)
// CloudAddressService is an interface for managing addresses
// CloudAddressService is an interface for managing addresses
type
CloudAddressService
interface
{
type
CloudAddressService
interface
{
...
@@ -25,4 +28,8 @@ type CloudAddressService interface {
...
@@ -25,4 +28,8 @@ type CloudAddressService interface {
GetRegionAddressByIP
(
region
,
ipAddress
string
)
(
*
compute
.
Address
,
error
)
GetRegionAddressByIP
(
region
,
ipAddress
string
)
(
*
compute
.
Address
,
error
)
// TODO: Mock `DeleteRegionAddress(name, region string) endpoint
// TODO: Mock `DeleteRegionAddress(name, region string) endpoint
// TODO: Mock Global endpoints
// TODO: Mock Global endpoints
// Alpha API.
GetAlphaRegionAddress
(
name
,
region
string
)
(
*
computealpha
.
Address
,
error
)
ReserveAlphaRegionAddress
(
addr
*
computealpha
.
Address
,
region
string
)
error
}
}
pkg/cloudprovider/providers/gce/gce_loadbalancer.go
View file @
5cb1cccd
...
@@ -21,7 +21,6 @@ import (
...
@@ -21,7 +21,6 @@ import (
"fmt"
"fmt"
"net"
"net"
"strings"
"strings"
"time"
"github.com/golang/glog"
"github.com/golang/glog"
...
@@ -40,10 +39,7 @@ var (
...
@@ -40,10 +39,7 @@ var (
)
)
func
newLoadBalancerMetricContext
(
request
,
region
string
)
*
metricContext
{
func
newLoadBalancerMetricContext
(
request
,
region
string
)
*
metricContext
{
return
&
metricContext
{
return
newGenericMetricContext
(
"loadbalancer"
,
request
,
region
,
unusedMetricLabel
,
computeV1Version
)
start
:
time
.
Now
(),
attributes
:
[]
string
{
"loadbalancer_"
+
request
,
region
,
unusedMetricLabel
},
}
}
}
type
lbScheme
string
type
lbScheme
string
...
...
pkg/cloudprovider/providers/gce/gce_routes.go
View file @
5cb1cccd
...
@@ -20,7 +20,6 @@ import (
...
@@ -20,7 +20,6 @@ import (
"fmt"
"fmt"
"net/http"
"net/http"
"path"
"path"
"time"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/types"
"k8s.io/kubernetes/pkg/cloudprovider"
"k8s.io/kubernetes/pkg/cloudprovider"
...
@@ -30,10 +29,7 @@ import (
...
@@ -30,10 +29,7 @@ import (
)
)
func
newRoutesMetricContext
(
request
string
)
*
metricContext
{
func
newRoutesMetricContext
(
request
string
)
*
metricContext
{
return
&
metricContext
{
return
newGenericMetricContext
(
"routes"
,
request
,
unusedMetricLabel
,
unusedMetricLabel
,
computeV1Version
)
start
:
time
.
Now
(),
attributes
:
[]
string
{
"routes_"
+
request
,
unusedMetricLabel
,
unusedMetricLabel
},
}
}
}
func
(
gce
*
GCECloud
)
ListRoutes
(
clusterName
string
)
([]
*
cloudprovider
.
Route
,
error
)
{
func
(
gce
*
GCECloud
)
ListRoutes
(
clusterName
string
)
([]
*
cloudprovider
.
Route
,
error
)
{
...
...
pkg/cloudprovider/providers/gce/gce_targetpool.go
View file @
5cb1cccd
...
@@ -16,17 +16,10 @@ limitations under the License.
...
@@ -16,17 +16,10 @@ limitations under the License.
package
gce
package
gce
import
(
import
compute
"google.golang.org/api/compute/v1"
"time"
compute
"google.golang.org/api/compute/v1"
)
func
newTargetPoolMetricContext
(
request
,
region
string
)
*
metricContext
{
func
newTargetPoolMetricContext
(
request
,
region
string
)
*
metricContext
{
return
&
metricContext
{
return
newGenericMetricContext
(
"targetpool"
,
request
,
region
,
unusedMetricLabel
,
computeV1Version
)
start
:
time
.
Now
(),
attributes
:
[]
string
{
"targetpool_"
+
request
,
region
,
unusedMetricLabel
},
}
}
}
// GetTargetPool returns the TargetPool by name.
// GetTargetPool returns the TargetPool by name.
...
...
pkg/cloudprovider/providers/gce/gce_targetproxy.go
View file @
5cb1cccd
...
@@ -18,16 +18,12 @@ package gce
...
@@ -18,16 +18,12 @@ package gce
import
(
import
(
"net/http"
"net/http"
"time"
compute
"google.golang.org/api/compute/v1"
compute
"google.golang.org/api/compute/v1"
)
)
func
newTargetProxyMetricContext
(
request
string
)
*
metricContext
{
func
newTargetProxyMetricContext
(
request
string
)
*
metricContext
{
return
&
metricContext
{
return
newGenericMetricContext
(
"targetproxy"
,
request
,
unusedMetricLabel
,
unusedMetricLabel
,
computeV1Version
)
start
:
time
.
Now
(),
attributes
:
[]
string
{
"targetproxy_"
+
request
,
unusedMetricLabel
,
unusedMetricLabel
},
}
}
}
// GetTargetHttpProxy returns the UrlMap by name.
// GetTargetHttpProxy returns the UrlMap by name.
...
...
pkg/cloudprovider/providers/gce/gce_urlmap.go
View file @
5cb1cccd
...
@@ -18,16 +18,12 @@ package gce
...
@@ -18,16 +18,12 @@ package gce
import
(
import
(
"net/http"
"net/http"
"time"
compute
"google.golang.org/api/compute/v1"
compute
"google.golang.org/api/compute/v1"
)
)
func
newUrlMapMetricContext
(
request
string
)
*
metricContext
{
func
newUrlMapMetricContext
(
request
string
)
*
metricContext
{
return
&
metricContext
{
return
newGenericMetricContext
(
"urlmap"
,
request
,
unusedMetricLabel
,
unusedMetricLabel
,
computeV1Version
)
start
:
time
.
Now
(),
attributes
:
[]
string
{
"urlmap_"
+
request
,
unusedMetricLabel
,
unusedMetricLabel
},
}
}
}
// GetUrlMap returns the UrlMap by name.
// GetUrlMap returns the UrlMap by name.
...
...
pkg/cloudprovider/providers/gce/gce_zones.go
View file @
5cb1cccd
...
@@ -18,7 +18,6 @@ package gce
...
@@ -18,7 +18,6 @@ package gce
import
(
import
(
"fmt"
"fmt"
"time"
compute
"google.golang.org/api/compute/v1"
compute
"google.golang.org/api/compute/v1"
...
@@ -27,10 +26,7 @@ import (
...
@@ -27,10 +26,7 @@ import (
)
)
func
newZonesMetricContext
(
request
,
region
string
)
*
metricContext
{
func
newZonesMetricContext
(
request
,
region
string
)
*
metricContext
{
return
&
metricContext
{
return
newGenericMetricContext
(
"zones"
,
request
,
region
,
unusedMetricLabel
,
computeV1Version
)
start
:
time
.
Now
(),
attributes
:
[]
string
{
"zones_"
+
request
,
region
,
unusedMetricLabel
},
}
}
}
// GetZone creates a cloudprovider.Zone of the current zone and region
// GetZone creates a cloudprovider.Zone of the current zone and region
...
...
pkg/cloudprovider/providers/gce/metrics.go
View file @
5cb1cccd
...
@@ -22,21 +22,33 @@ import (
...
@@ -22,21 +22,33 @@ import (
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus"
)
)
const
(
// Version strings for recording metrics.
computeV1Version
=
"v1"
computeAlphaVersion
=
"alpha"
computeBetaVersion
=
"beta"
)
type
apiCallMetrics
struct
{
type
apiCallMetrics
struct
{
latency
*
prometheus
.
HistogramVec
latency
*
prometheus
.
HistogramVec
errors
*
prometheus
.
CounterVec
errors
*
prometheus
.
CounterVec
}
}
var
(
var
(
apiMetrics
=
registerAPIMetrics
(
metricLabels
=
[]
string
{
"request"
,
// API function that is begin invoked.
"request"
,
// API function that is begin invoked.
"region"
,
// region (optional).
"region"
,
// region (optional).
"zone"
,
// zone (optional).
"zone"
,
// zone (optional).
)
"version"
,
// API version.
}
apiMetrics
=
registerAPIMetrics
(
metricLabels
...
)
)
)
type
metricContext
struct
{
type
metricContext
struct
{
start
time
.
Time
start
time
.
Time
// The cardinalities of attributes and metricLabels (defined above) must
// match, or prometheus will panic.
attributes
[]
string
attributes
[]
string
}
}
...
@@ -54,6 +66,13 @@ func (mc *metricContext) Observe(err error) error {
...
@@ -54,6 +66,13 @@ func (mc *metricContext) Observe(err error) error {
return
err
return
err
}
}
func
newGenericMetricContext
(
prefix
,
request
,
region
,
zone
,
version
string
)
*
metricContext
{
return
&
metricContext
{
start
:
time
.
Now
(),
attributes
:
[]
string
{
prefix
+
"_"
+
request
,
region
,
zone
,
version
},
}
}
// registerApiMetrics adds metrics definitions for a category of API calls.
// registerApiMetrics adds metrics definitions for a category of API calls.
func
registerAPIMetrics
(
attributes
...
string
)
*
apiCallMetrics
{
func
registerAPIMetrics
(
attributes
...
string
)
*
apiCallMetrics
{
metrics
:=
&
apiCallMetrics
{
metrics
:=
&
apiCallMetrics
{
...
...
pkg/cloudprovider/providers/gce/metrics_test.go
0 → 100644
View file @
5cb1cccd
/*
Copyright 2017 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
gce
import
(
"testing"
"github.com/stretchr/testify/assert"
)
func
TestVerifyMetricLabelCardinality
(
t
*
testing
.
T
)
{
mc
:=
newGenericMetricContext
(
"foo"
,
"get"
,
"us-central1"
,
"<n/a>"
,
"alpha"
)
assert
.
Len
(
t
,
mc
.
attributes
,
len
(
metricLabels
),
"cardinalities of labels and values must match"
)
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment