Merge branch 'master' of github.com:hrasadi/microservices-demo

This commit is contained in:
Hamidreza Asaadi 2018-11-18 11:14:54 -05:00
commit 69f157dbac
19 changed files with 34 additions and 17 deletions

3
.gitignore vendored
View file

@ -5,8 +5,7 @@ pkg/
*.swp *.swp
*~ *~
.vscode/ .vscode/
.vs/slnx.sqlite .vs/
.vs/microservices-demo/v15/.suo
.idea .idea
.skaffold-*.yaml .skaffold-*.yaml
.kubernetes-manifests-*/ .kubernetes-manifests-*/

View file

@ -4,7 +4,7 @@ services:
- docker - docker
install: install:
- curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/v0.16.0/skaffold-linux-amd64 - curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/v0.18.0/skaffold-linux-amd64
- chmod +x skaffold - chmod +x skaffold
- sudo mv skaffold /usr/local/bin - sudo mv skaffold /usr/local/bin

View file

@ -136,6 +136,12 @@ Find **Protocol Buffers Descriptions** at the [`./pb` directory](./pb).
kubectl get service frontend-external kubectl get service frontend-external
**Troubleshooting:** A Kubernetes bug (will be fixed in 1.12) combined with
a Skaffold [bug](https://github.com/GoogleContainerTools/skaffold/issues/887)
causes load balancer to not to work even after getting an IP address. If you
are seeing this, run `kubectl get service frontend-external -o=yaml | kubectl apply -f-`
to trigger load balancer reconfiguration.
### (Optional) Deploying on a Istio-installed cluster ### (Optional) Deploying on a Istio-installed cluster
> **Note:** you followed GKE deployment steps above, run `skaffold delete` first > **Note:** you followed GKE deployment steps above, run `skaffold delete` first

View file

@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
apiVersion: skaffold/v1alpha4 apiVersion: skaffold/v1alpha5
kind: Config kind: Config
build: build:
artifacts: artifacts:

View file

@ -25,7 +25,7 @@ repositories {
group = "adservice" group = "adservice"
version = "0.1.0-SNAPSHOT" // CURRENT_OPENCENSUS_VERSION version = "0.1.0-SNAPSHOT" // CURRENT_OPENCENSUS_VERSION
def opencensusVersion = "0.16.1" // LATEST_OPENCENSUS_RELEASE_VERSION def opencensusVersion = "0.17.0" // LATEST_OPENCENSUS_RELEASE_VERSION
def grpcVersion = "1.15.0" // CURRENT_GRPC_VERSION def grpcVersion = "1.15.0" // CURRENT_GRPC_VERSION
def jacksonVersion = "2.9.6" def jacksonVersion = "2.9.6"
def prometheusVersion = "0.3.0" def prometheusVersion = "0.3.0"

View file

@ -207,16 +207,24 @@ public class AdService {
// Registers logging trace exporter. // Registers logging trace exporter.
LoggingTraceExporter.register(); LoggingTraceExporter.register();
long sleepTime = 10; /* seconds */ long sleepTime = 10; /* seconds */
int maxAttempts = 3; int maxAttempts = 5;
boolean statsExporterRegistered = false;
boolean traceExporterRegistered = false;
for (int i=0; i<maxAttempts; i++) { for (int i=0; i<maxAttempts; i++) {
try { try {
StackdriverTraceExporter.createAndRegister( if (!traceExporterRegistered) {
StackdriverTraceConfiguration.builder().build()); StackdriverTraceExporter.createAndRegister(
StackdriverStatsExporter.createAndRegister( StackdriverTraceConfiguration.builder().build());
StackdriverStatsConfiguration.builder() traceExporterRegistered = true;
.setExportInterval(Duration.create(15, 0)) }
.build()); if (!statsExporterRegistered) {
StackdriverStatsExporter.createAndRegister(
StackdriverStatsConfiguration.builder()
.setExportInterval(Duration.create(60, 0))
.build());
statsExporterRegistered = true;
}
} catch (Exception e) { } catch (Exception e) {
if (i==(maxAttempts-1)) { if (i==(maxAttempts-1)) {
logger.log(Level.WARN, "Failed to register Stackdriver Exporter." + logger.log(Level.WARN, "Failed to register Stackdriver Exporter." +

View file

@ -6,9 +6,9 @@
<!-- This is a JSON format that can be read by the Stackdriver Logging agent. The trace and <!-- This is a JSON format that can be read by the Stackdriver Logging agent. The trace and
span IDs are interpreted by Stackdriver, and "traceSampled" is a custom field. --> span IDs are interpreted by Stackdriver, and "traceSampled" is a custom field. -->
<JsonLayout compact="true" eventEol="true"> <JsonLayout compact="true" eventEol="true">
<KeyValuePair key="logging.googleapis.com/trace" value="$${ctx:opencensusTraceId}"/> <KeyValuePair key="logging.googleapis.com/trace" value="$${ctx:traceId}"/>
<KeyValuePair key="logging.googleapis.com/spanId" value="$${ctx:opencensusSpanId}"/> <KeyValuePair key="logging.googleapis.com/spanId" value="$${ctx:spanId}"/>
<KeyValuePair key="traceSampled" value="$${ctx:opencensusTraceSampled}"/> <KeyValuePair key="traceSampled" value="$${ctx:traceSampled}"/>
</JsonLayout> </JsonLayout>
</Console> </Console>

View file

@ -99,6 +99,7 @@ func main() {
} }
func initStats(exporter *stackdriver.Exporter) { func initStats(exporter *stackdriver.Exporter) {
view.SetReportingPeriod(60 * time.Second)
view.RegisterExporter(exporter) view.RegisterExporter(exporter)
if err := view.Register(ocgrpc.DefaultServerViews...); err != nil { if err := view.Register(ocgrpc.DefaultServerViews...); err != nil {
log.Warn("Error registering default server views") log.Warn("Error registering default server views")

View file

@ -35,7 +35,7 @@ PyGObject==3.30.1
python-json-logger==0.1.9 python-json-logger==0.1.9
pytz==2018.5 pytz==2018.5
pyxdg==0.26 pyxdg==0.26
requests==2.19.1 requests==2.20.0
rsa==4.0 rsa==4.0
SecretStorage==3.1.0 SecretStorage==3.1.0
six==1.11.0 six==1.11.0

View file

@ -143,6 +143,7 @@ func main() {
} }
func initStats(log logrus.FieldLogger, exporter *stackdriver.Exporter) { func initStats(log logrus.FieldLogger, exporter *stackdriver.Exporter) {
view.SetReportingPeriod(60 * time.Second)
view.RegisterExporter(exporter) view.RegisterExporter(exporter)
if err := view.Register(ochttp.DefaultServerViews...); err != nil { if err := view.Register(ochttp.DefaultServerViews...); err != nil {
log.Warn("Error registering http default server views") log.Warn("Error registering http default server views")

View file

@ -90,6 +90,7 @@ func run(port int) string {
} }
func initStats(exporter *stackdriver.Exporter) { func initStats(exporter *stackdriver.Exporter) {
view.SetReportingPeriod(60 * time.Second)
view.RegisterExporter(exporter) view.RegisterExporter(exporter)
if err := view.Register(ocgrpc.DefaultServerViews...); err != nil { if err := view.Register(ocgrpc.DefaultServerViews...); err != nil {
log.Info("Error registering default server views") log.Info("Error registering default server views")

View file

@ -23,7 +23,7 @@ pyasn1-modules==0.2.2
python-json-logger==0.1.9 python-json-logger==0.1.9
pytz==2018.5 pytz==2018.5
PyYAML==3.13 PyYAML==3.13
requests==2.19.1 requests==2.20.0
rsa==3.4.2 rsa==3.4.2
six==1.11.0 six==1.11.0
uritemplate==3.0.0 uritemplate==3.0.0

View file

@ -129,6 +129,7 @@ func (s *server) ShipOrder(ctx context.Context, in *pb.ShipOrderRequest) (*pb.Sh
} }
func initStats(exporter *stackdriver.Exporter) { func initStats(exporter *stackdriver.Exporter) {
view.SetReportingPeriod(60 * time.Second)
view.RegisterExporter(exporter) view.RegisterExporter(exporter)
if err := view.Register(ocgrpc.DefaultServerViews...); err != nil { if err := view.Register(ocgrpc.DefaultServerViews...); err != nil {
log.Warn("Error registering default server views") log.Warn("Error registering default server views")