Code Monkey home page Code Monkey logo

helix-logging's Introduction

Helix Logging Setup Microservice

codecov CircleCI GitHub license GitHub issues

This is a simple microservice (to be used in conjunction with Project Helix) that sets up correct logging for a Project Helix-managed Fastly service config. It makes sure logs will be sent to Google BigQuery.

Usage

Send a POST request with following parameters to $ curl https://adobeioruntime.net/api/v1/web/helix/helix-services/logging@v1:

  • service: the Fastly service config ID of the service that should get updated
  • token: a Fastly API token that has write permissions on the service above
  • version: the version number of a checked out (draft) version of the service config above

Optional:

  • coralogixkey: A private key from Coralogix
  • coralogixapp: name of the Coralogix application to send logs to

Sending over these optional parameters will also enable logging to Coralogix.

$ curl -X POST -H "Content-Type: application/json" -d '{"service":"6E6ge7REhiWetPCqy9jht2","version":2,"token":"thisismysecret"}'
{
    "dataset": "helix_logging_6E6ge7REhiWetPCqy9jht2",
    "format": {
        "client_as_name": "%{client.as.name}V",
        "client_geo_city": "%{client.geo.city.utf8}V",
        "client_geo_conn_speed": "%{client.geo.conn_speed}V",
        "client_geo_continent_code": "%{client.geo.continent_code}V",
        "client_geo_country_code": "%{client.geo.country_code}V",
        "client_geo_gmt_offset": "%{client.geo.gmt_offset}V",
        "client_geo_latitude": "%{client.geo.latitude}V",
        "client_geo_longitude": "%{client.geo.longitude}V",
        "client_geo_metro_code": "%{client.geo.metro_code}V",
        "client_geo_postal_code": "%{client.geo.postal_code}V",
        "client_geo_region": "%{client.geo.region}V",
        "client_ip_hashed": "%{digest.hash_sha1(client.ip)}V",
        "client_ip_masked": "%{client.ip}V",
        "fastly_info_state": "%{fastly_info.state}V",
        "req_http_Referer": "%{req.http.Referer}V",
        "req_http_User_Agent": "%{req.http.User-Agent}V",
        "req_http_X_CDN_Request_ID": "%{req.http.X-CDN-Request-ID}V",
        "req_http_X_Host": "%{req.http.X-Host}V",
        "req_http_X_Owner": "%{req.http.X-Owner}V",
        "req_http_X_Ref": "%{req.http.X-Ref}V",
        "req_http_X_Repo": "%{req.http.X-Repo}V",
        "req_http_X_Static": "%{req.http.X-Static}V",
        "req_http_X_Strain": "%{req.http.X-Strain}V",
        "req_http_X_URL": "%{req.http.X-URL}V",
        "req_http_host": "%v",
        "req_url": "https://%{req.http.X-Host}V%{req.http.X-URL}V",
        "resp_http_Content_Type": "%{resp.http.Content-Type}V",
        "resp_http_X_Version": "%{req.http.X-Version}V",
        "resp_http_x_openwhisk_activation_id": "%{resp.http.x-openwhisk-activation-id}V",
        "server_datacenter": "%{server.datacenter}V",
        "server_region": "%{server.region}V",
        "service_config": "6E6ge7REhiWetPCqy9jht2",
        "status_code": "%>s",
        "time_elapsed_usec": "%{time.elapsed.usec}V",
        "time_end_usec": "%{time.end.usec}V",
        "time_start_usec": "%{time.start.usec}V",
        "vcl_sub": "log-general"
    },
    "name": "helix-logging",
    "project": "helix-225321",
    "service": "6E6ge7REhiWetPCqy9jht2",
    "version": "2"
}

What happens behind the scenes:

  • the service creates or updates a Google Cloud Platform service account that corresponds to the service config
  • the service creates or rotates the private keys for the service account
  • the service creates or updates a Google BigQuery dataset with proper tables
  • the service grants permission to the service user to write the Google BigQuery dataset
  • the service creates or updates a log configuration in Fastly that sends logs to the above Google BigQuery dataset using the private key and service account from above

Required Environment Variables

This service depends on three external services to operate:

  • Fastly
  • Adobe I/O Runtime (only for deployments)
  • Google Cloud Platform

It is configured using a number of environment variables that are required for testing (tests that miss required variables will be skipped) and deployment (deployment will fail or be non-functional). These variables are required and this is how to set them up:

GOOGLE_CLIENT_EMAIL

This is the email address associated with a Google Cloud Platform Service account. It looks like <name>@<project>.iam.gserviceaccount.com. You can create a proper service account following the instructions in the Google Cloud Platform documentation or this step-by-step guide:

  1. Log in to Google Cloud Platform Console
  2. Select menu → "IAM & admin" → "Service accounts" → "Create service account"
  3. Create the service account
  4. Add the following roles to the service account:
    • BigQuery Admin
    • Service Account Admin
    • Service Account Key Admin
    • Service Account Key Admin
  5. Create a private key in JSON format for the service account and download the key file

Note: The private key file and the value of the GOOGLE_CLIENT_EMAIL environment variable should be considered private and should never be checked in to source control.

The downloaded file will look something like this:

{
  "type": "service_account",
  "project_id": "project-12345678",
  "private_key_id": "111122223333aaaabbbbccccdddd123412345",
  "private_key": "-----BEGIN PRIVATE KEY-----\n\n-----END PRIVATE KEY-----\n",
  "client_email": "[email protected]",
  "client_id": "111122223333444456789",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/example-account%40project-12345678.iam.gserviceaccount.com"
}

Copy the value of the client_email field (e.g. [email protected]) and save it in the GOOGLE_CLIENT_EMAIL environment variable.

GOOGLE_PRIVATE_KEY

This is the private key associated with the Google Cloud Platform Service account created above. In order to retrieve the correct value, see Creating and Managing Service Account Keys in the Google Cloud Platform documentation or continue the step-by-step guide from above:

  1. Make sure you've followed all steps to get the value of GOOGLE_CLIENT_EMAIL
  2. Copy the value of the private_key property in the JSON file you've downloaded

Note: The private key and the value of the GOOGLE_PRIVATE_KEY environment variable should be considered private and should never be checked in to source control.

The private key is a multi-line value.

Note: Private keys created using an API typically have a short expiration time and need to be rotated in regular intervals. Even for private keys that have been created manually, regular rotation is a best practice.

GOOGLE_PROJECT_ID

This is the Google Cloud Platform project ID. It looks like project-12345678 and you will find it in lots of places in the Google Cloud Platform Console UI. In addition, you can just take the value of the project_id property in your downloaded key JSON file.

HLX_FASTLY_NAMESPACE

This property is only required for testing and development. It is the service config ID that you can retrieve from Fastly.

For testing, it is a good idea to use a separate, non-production service config, as the tests not only perform frequent updates, but they also rotate the private keys of the created Google Cloud Platform service accounts. As the tests don't activate the service config, this will lead to an invalid logging configuration in a short time.

HLX_FASTLY_AUTH

This property is only required for testing and development. It is an API token for the Fastly API. Follow the instructions in the Fastly documentation to create a token.

The token needs to have global, i.e. write access to your service config.

Note: The API token and the value of the HLX_FASTLY_AUTH environment variable should be considered private and should never be checked in to source control.

VERSION_NUM

This is the version number of a version of the service config above that has been checked out, but has never been activated. This means it is editable.

Developing Helix Logging

You need node>=8.0.0 and npm>=5.4.0. Follow the typical npm install, npm test workflow.

Contributions are highly welcome.

Deploying Helix Logging

Deploying Helix Logging requires the wsk command-line client, authenticated to a namespace of your choice. For Project Helix, we use the helix namespace.

Run npm run deploy to do a one-shot deploment of Helix Logging. All commits to main that pass the testing will be deployed automatically.

helix-logging's People

Contributors

adobe-bot avatar burtica avatar dependabot[bot] avatar dominique-pfister avatar greenkeeper[bot] avatar marquiserosier avatar renovate-bot avatar renovate[bot] avatar rofe avatar semantic-release-bot avatar silvia-odwyer avatar snyk-bot avatar stefan-guggisberg avatar trieloff avatar tripodsan avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

helix-logging's Issues

setup deployment via circleci or provide (encrypted) credentials

Description
There is no way to deploy the action to openwhisk, if the required credentiuals are not known (CLIENT_ID etc).

Possible Solutions

  • (a) add the encrypted credentials to git (blackbox)
  • (b) setup a deploy workflow in circleci that can deploy to the production namespace
  • (c) create a openwhisk package that contains the required parameters and nest the action below it. it will inherit the package's params.

An in-range update of codecov is breaking the build 🚨

The devDependency codecov was updated from 3.4.0 to 3.5.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

codecov is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: build: Your tests failed on CircleCI (Details).
  • build: * build - Failed

Commits

The new version differs by 3 commits.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

improve releasing with semantic-release

I think it might be helpful to use semantic-release to deploy the action via CI.
a release should:

  1. run test tests
  2. run semantic release to figure out changes
  3. update changelog and create git release
  4. update the version number accordingly
  5. use exec plugin to deploy the action to wsk

the action name should include the version. eg [email protected]. and the exposed action is just a sequence linking to the released action.

updating the symlink can still be done manually. using sequences has the advantage that we can easily rollback to previous states.

Missing Values

Following values are missing from the logs (post-refactor)

  • req_http_X_Host
  • req_url
  • req_http_X_URL
  • req_http_X_CDN_Request_ID (sometimes)
  • resp_http_x_openwhisk_activation_id
  • resp_http_X_Version (inconsistent)

An in-range update of codecov is breaking the build 🚨

The devDependency codecov was updated from 3.2.0 to 3.3.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

codecov is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: build: Your tests failed on CircleCI (Details).
  • build: * build - Failed

Release Notes for v3.3.0

Added pipe --pipe, -l

Commits

The new version differs by 21 commits.

  • d81c4f4 Merge pull request #111 from TomSputz/pipe
  • aa5a2b0 feat(services): add Cirrus CI (#117)
  • 00d484b v3.2.0
  • ad51194 Satisfy ESLint configuration
  • 5f2d0e6 Fixed path to npm bin folder
  • afcf3e5 Fixed merge conflicts
  • 145cb46 updated PR with changes from upstream
  • 2b2ad02 merge package-lock.json from upstream
  • bf0c751 added documentation
  • 9445f72 fixed wrong fixture file names
  • 348cf7b lock dependencies
  • fbf17d2 remove timer because slow CI servers need more than half a second before data is flowing - switch to use --pipe or -l as signal to codecov to recieve data via stdin
  • b145b19 Merge branch 'master' into pipe
  • d460065 check if the stale state was due to using the data event instead of the readable event
  • e8ca9ed be very explicit about exiting process and clearing timeout

There are 21 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of @adobe/openwhisk-action-builder is breaking the build 🚨

The devDependency @adobe/openwhisk-action-builder was updated from 1.3.1 to 1.4.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@adobe/openwhisk-action-builder is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: build: Your tests failed on CircleCI (Details).
  • Tidelift: Dependencies checked (Details).
  • build: * build - Failed
  • branch-deploy - Blocked

Commits

The new version differs by 7 commits.

  • 1e3a6e7 chore(release): 1.4.0 [skip ci]
  • 293ff57 feat(builder): trigger release
  • b89a261 test(unzip): replace unzip2 with yauzl due to security fixes (#61)
  • b752f94 refactor(lib): extract helper to own package (#60)
  • b544def chore(lint): use airbnb-base and update deps (#58)
  • c02a494 chore(tidelift): adding list of forbidden licenses
  • 8c915f1 chore(docs): update readme

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Re-Add and Rename missing Google Credentials

The change in #74 removed the application of the parameters CLIENT_EMAIL, PRIVATE_KEY and PROJECT_ID as part of the build process resulting in authentication errors observed by Epsagon for subsequent releases.

We should instead set the parameters on the package level, so that they can be inherited by all deployments and are immediately available. Also, it would be advisable to switch to a naming scheme that includes the name GOOGLE_, i.e. GOOGLE_CLIENT_EMAIL, GOOGLE_PRIVATE_KEY and GOOGLE_PROJECT_ID.

Automated skyline log setup should annotate the service version

Is your feature request related to a problem? Please describe.
As of #467 skyline log setup is automated and creates new config versions of skyline services. These versions clutter up the version history and aren't annotated with a comment. This makes it unnecessarily cumbersome to review changes of a particular service.

Describe the solution you'd like
Updated service config versions should be easily recognizable, e.g. by annotating them with a comment such as "update logging config" or similar.

Additional context
#467

@trieloff

ping error responds with a XML error that can't be parsed by pingdom

...what makes matters worse is, that then the activation-id is not visible in the pingdom ui.
if we respond with a properly formatted XML, it should solve that issue.

error": " { \"errors\" : [{ \"title\" : \"Unknown Error Occurred\" , \"detail\" : \"Something went wrong - please try again or contact [email protected] if it persists\" }] } ",
                "message": "503 - \" { \\\"errors\\\" : [{ \\\"title\\\" : \\\"Unknown Error Occurred\\\" , \\\"detail\\\" : \\\"Something went wrong - please try again or contact [email protected] if it persists\\\" }] } \"",
                "name": "StatusCodeError",

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Error type: Cannot find preset's package (github>whitesource/merge-confidence:beta)

helix-logging creates empty requests table

Description
an empty requests table is created for every dataset in Bigquery

To Reproduce
Steps to reproduce the behavior:

  1. Go to console of bigquery
  2. select proper helix project.
  3. choose any dataset
  4. view tables and observe each dataset has an empty requests table

Expected behavior
redundant table shouldn't exist!

Screenshots
*
Screen Shot 2019-10-10 at 11 45 01 AM

An in-range update of @adobe/openwhisk-action-builder is breaking the build 🚨

The devDependency @adobe/openwhisk-action-builder was updated from 1.1.0 to 1.1.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@adobe/openwhisk-action-builder is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: build: Your tests failed on CircleCI (Details).
  • build: * build - Failed
  • branch-deploy - Blocked

Release Notes for v1.1.1

1.1.1 (2019-07-05)

Bug Fixes

  • dep: update dependencies (53878a0)
Commits

The new version differs by 3 commits.

  • 062717e chore(release): 1.1.1 [skip ci]
  • 53878a0 fix(dep): update dependencies
  • a61bde2 chore(package): update lint-staged to version 9.0.0

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of mocha is breaking the build 🚨

The devDependency mocha was updated from 6.1.4 to 6.2.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

mocha is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: build: Your tests failed on CircleCI (Details).
  • build: * build - Failed
  • branch-deploy - Blocked

Release Notes for v6.2.0

6.2.0 / 2019-07-18

🎉 Enhancements

🐛 Fixes

📖 Documentation

🔍 Coverage

🔩 Other

Commits

The new version differs by 39 commits.

  • bd47776 Release v6.2.0
  • cc595af update CHANGELOG.md for v6.2.0 [ci skip]
  • 59d70ee fix: remove duplicate line-height property (#3957)
  • f77cac4 fix: do not redeclare variable (#3956)
  • 6201e42 Hide stacktrace when cli args are missing (#3963)
  • 88f45d5 Don't re-initialize grep option on watch re-run (#3960)
  • 5d4dd98 Fix No Files error when file is passed via --files (#3942)
  • 15b96af Collect test files later (#3953)
  • ccee5f1 Base reporter store ref to console.log (#3725)
  • 47318a7 update @mocha/contributors to v1.0.4 (#3944)
  • c903147 More, improved integration tests for watching (#3929)
  • e341ea4 Update CI config files to use Node-12.x (#3919)
  • 3064d25 update @mocha/docdash to v2.1.1 (#3945)
  • 9ea45e7 do not fork if no node flags present (#3827)
  • d02a096 modify Mocha constructor to accept options.global or options.globals (#3914)

There are 39 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of @adobe/helix-pingdom-status is breaking the build 🚨

The dependency @adobe/helix-pingdom-status was updated from 3.1.0 to 3.1.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@adobe/helix-pingdom-status is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ci/circleci: build: Your tests failed on CircleCI (Details).
  • build: * build - Failed
  • branch-deploy - Blocked

Release Notes for v3.1.1

3.1.1 (2019-08-14)

Bug Fixes

  • action: check for JSON path in pure runtime function, too (2865c38), closes #34
Commits

The new version differs by 7 commits.

  • 3d69650 chore(release): 3.1.1 [skip ci]
  • 2865c38 fix(action): check for JSON path in pure runtime function, too
  • 3bfc4c1 Merge pull request #33 from adobe/greenkeeper/eslint-config-airbnb-18.0.0
  • 68f6fa0 chore(lint): use helix-eslint-config
  • 4c9e31a chore(tidelift): adding list of forbidden licenses
  • 07299ff chore(package): update lockfile package-lock.json
  • e708502 chore(package): update eslint-config-airbnb to version 18.0.0

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Always log X-Openwhisk-Activation-ID

Is your feature request related to a problem? Please describe.
Currently only requests including the correct X-Debug header are logged with the X-Openwhisk-Activation-ID response header, i.e. resp.http.x-openwhisk-activation-id is always cleared if the X-Debug header is not present.

As of adobe/helix-publish#384 the header is copied to the req object before clearing the response header, thus making it available for later logging.

Describe the solution you'd like
Change BigQuery schema accordingly to include req.http.x-openwhisk-activation-id instead of resp.http.x-openwhisk-activation-id.

Additional context
Related VCL issue: adobe/helix-publish#384

running the circle-ci tests produce error in epsagon

when the ci deploys the action and executes the test-request, it will generate an error in epsagon which will trigger a notification in helix-escalation.

Invalid credentials. Make sure email is the Google Service  Account email in the format <name>@<project>.iam.gserviceaccount.com and key is the private key starting with -----BEGIN PRIVATE KEY-----. You can create a new Service Account in the Google Cloud Platform Console under IAM.

An in-range update of snyk is breaking the build 🚨

The dependency snyk was updated from 1.196.0 to 1.197.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

snyk is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ci/circleci: build: Your tests failed on CircleCI (Details).
  • build: * build - Failed
  • branch-deploy - Blocked

Release Notes for v1.197.0

1.197.0 (2019-07-22)

Features

  • update the sbt plugin to accommodate a github issue (88a4b68)
Commits

The new version differs by 5 commits.

  • 11b7268 Merge pull request #630 from snyk/chore/convert-policy-from-js-ts
  • edb5e72 Merge pull request #673 from snyk/feat/update-sbt-plugin
  • ba56e8b chore: improve error imports
  • 88a4b68 feat: update the sbt plugin to accommodate a github issue
  • 24ea661 chore: convert policy.js to ts

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

use nodejs10 container to address changes in adobeio runtime.

Description
Adobe I/O runtime change the containers that are available by default to a minimalistic nodejs10 container. Since helix-logging uses the (old) nodejs8 container, the deployed actions are no longer working.

How to reproduce

$ hlx publish
Publishing [======================----------------------------] failed to set service config up for Helix 0.0serror: Remote publish service failed StatusCodeError: 400 - {"code":"usbvKub2BSrUzwv36hxYkj5IA7OUumdY","error":"The 'nodejs:8' runtime is no longer supported. You may read and delete but not update or invoke this action."}
error: Error while running the Publish command: Error: Unable to setup service config
    at request.post.then.catch (remotepublish.cmd.js:171:13)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:189:7)Unable to set up remote logging
Error while running the Publish command

An in-range update of snyk is breaking the build 🚨

The dependency snyk was updated from 1.193.2 to 1.193.3.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

snyk is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ci/circleci: build: Your tests failed on CircleCI (Details).
  • build: * build - Failed
  • branch-deploy - Blocked

Release Notes for v1.193.3

1.193.3 (2019-07-18)

Bug Fixes

  • add build-essential for Python (35eec56)
Commits

The new version differs by 2 commits.

  • 9bf3241 Merge pull request #664 from snyk/fix/add-build-essentials-python
  • 35eec56 fix: add build-essential for Python

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of @adobe/helix-shared is breaking the build 🚨

The dependency @adobe/helix-shared was updated from 2.0.0 to 2.1.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@adobe/helix-shared is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ci/circleci: build: Your tests failed on CircleCI (Details).
  • build: * build - Failed
  • branch-deploy - Blocked

Release Notes for v2.1.0

2.1.0 (2019-07-23)

Features

  • logging: Simplify the logger interface (b1b4ac2)
Commits

The new version differs by 2 commits.

  • 75396c4 chore(release): 2.1.0 [skip ci]
  • b1b4ac2 feat(logging): Simplify the logger interface

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of epsagon is breaking the build 🚨

The dependency epsagon was updated from 1.31.1 to 1.31.2.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

epsagon is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ci/circleci: build: Your tests failed on CircleCI (Details).
  • build: * build - Failed
  • branch-deploy - Blocked

Release Notes for v1.31.2

1.31.2 (2019-07-16)

Bug Fixes

  • openwhisk: add support for concurrent tracers (#137) (3b44a17)
Commits

The new version differs by 1 commits.

  • 3b44a17 fix(openwhisk): add support for concurrent tracers (#137)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Dependency Dashboard

This issue provides visibility into Renovate updates and their statuses. Learn more

Awaiting Schedule

These updates are awaiting their schedule. Click on a checkbox to get an update now.

  • chore(deps): update dependency ajv to v8.11.0
  • fix(deps): update dependency googleapis to v98

Edited/Blocked

These updates have been manually edited so Renovate will no longer make changes. To discard all commits and start over, click on a checkbox.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.


  • Check this box to trigger a request for Renovate to run again on this repository

Log Setup on fresh service config fails

From @tripodsan:

I tried to publish a new service. I see that the tablename is never defined.

wsk activation logs 86f21fd6ffc747c6b21fd6ffc7e7c662
2019-08-20T21:48:21.042Z       stdout: [hlx] info: Successfully authenticated with Fastly. Current version is 2
2019-08-20T21:48:21.967Z       stdout: [hlx] info: Successfully created Google Bigquery table undefined in helix_logging_428D6Pux08pnbt9WZQMBhx
2019-08-20T21:48:22.752Z       stdout: [hlx] info: Successfully created service account key 08e2f8607848e2a516a70232f5ffb854bea2307e for [email protected]
2019-08-20T21:48:22.925Z       stdout: [hlx] error: Unable to add logger to service c

ok. running hlx publish a 2nd time worked.

See https://dashboard.epsagon.com/search/?search_string%5B0%5D%5Btype%5D=name&search_string%5B0%5D%5Bterm%5D=%2Fhelix%2Fhelix-services%2Flogging%401.1.9&search_string%5B1%5D%5Btype%5D=search&search_string%5B1%5D%5Bterm%5D=Error&search_string%5B2%5D%5Btype%5D=status&search_string%5B2%5D%5Bterm%5D=error&time_frame%5Btype%5D=dates_range&time_frame%5Bfrom%5D=1566251302925&time_frame%5Bto%5D=1566424102925&time_frame%5Bfrequency%5D=86400 for a trace

Some Google Logs send malformed JSON

From @MarquiseRosier

BTW @drwilco checked their internal logging; and saw that we have invalid json errors: -> this snippet is from before the new changes to helix-logging;
Doc advised us to use json.escape function!

2020-08-23 23:27:51.953269259 +0000 UTC: skipped 1 invalid (non-JSON) entries while creating a batch body; example failed at: { "timestamp": 1598225269673,  "applicationName": "xxxxxx",  "subsystemName": "xxxxxxxxxxxxxxxxxxxxxx",  "severity": 4,  "json": { "ow": { "activationId": "xxxxxx" },  "cdn": { "url": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",  "service_id": "xxxxxxxxxxxxxxxxxxxxxx",  "version": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",  "time": { "start": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",  "start_msec": 1598225269673,  "end": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",  "end_msec": 1598225269673,  "elapsed": 327 },  "client": { "name": "xxxxxx",  "number": 54113,  "location_geopoint": { "lat": 39.030,  "lon": -77.490 },  "city_name": "xxxxxxx",  "country_name": "xxxxxxxxxxxxx",  "connection_speed": "xxxxxxxxx",  "ip": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" },  "request": { "id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",  "method": "xxx",  "protocol": "xxxxxxxx",  "h2": false,  "h2_push": false,  "is_ipv6": false,  "h2_stream_id": "x",  "url": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",  "referer": "",  "user_agent": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",  "accept_content": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",  "accept_language": "",  "accept_encoding": "xxxx",  "accept_charset": "",  "connection": "",  "dnt": "",  "forwarded": "",  "via": "",  "cache_control": "",  "x_requested_with": "",  "header_size": 1133,  "body_size": 0 },  "origin": { "host": "xxxxxxxxxxxxxxxxxxxxx",  "url": "xxxxxx" },  "helix": { "strain": "xxxxxxx",  "type": "xxxxxx" },  "response": { "status": "xxx",  "content_type": "xxxxxxxxx",  "age": "",  "cache_control": "",  "expires": "",  "last_modified": "",  "tsv": "",  "header_size": 532,  "body_size": 8950 },  "edge": { "cache_status": "xxxxx",  "is_cacheable": false,  "datacenter": "xxx",  "ip": "xxxxxxxxxxxxxxx" },  "socket": { "cwnd": 17,  "nexthop": "xxxxxxxxxxxx",  "tcpi_rcv_mss": 1219,  "tcpi_snd_mss": 1448,  "tcpi_rtt": 1747,  "tcpi_rttvar": 3199,  "tcpi_rcv_rtt": 1000,  "tcpi_rcv_space": 35792,  "tcpi_last_data_sent": 0,  "tcpi_total_retrans": 0,  "tcpi_delta_retrans": 0,  "ploss": 0.000 }, "vcl_trace": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"g

An in-range update of @adobe/helix-pingdom-status is breaking the build 🚨

The dependency @adobe/helix-pingdom-status was updated from 2.0.0 to 2.0.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@adobe/helix-pingdom-status is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ci/circleci: build: Your tests failed on CircleCI (Details).
  • build: * build - Failed
  • branch-deploy - Blocked

Release Notes for v2.0.1

2.0.1 (2019-07-24)

Bug Fixes

  • package: update snyk to version 2.0.0 (afe472b)
Commits

The new version differs by 7 commits.

  • 5c03bd6 chore(release): 2.0.1 [skip ci]
  • c01dd79 Merge pull request #25 from adobe/greenkeeper/snyk-2.0.0
  • 0619600 chore(package): update lockfile package-lock.json
  • afe472b fix(package): update snyk to version 2.0.0
  • fdf6879 tests(index): adjust to new version
  • dc181db chore(package): update lockfile package-lock.json
  • 389cb31 chore(package): update @adobe/openwhisk-action-builder to version 1.2.1

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Log X-Prefetch Header to support Traffic Analysis

Is your feature request related to a problem? Please describe.
To support: https://github.com/adobe/project-helix/issues/428

Describe the solution you'd like
A way to differentiate between prefetches and user-driven behavior:
Prefetch header isn't standardized; so we'd have to do something in the VCL to check for X-Purpose, X-Moz and reconcile them to some header: I propose X-Prefetch; which can then be logged.

Describe alternatives you've considered
Alternatives are to write prefetches into a table; as a counting mechanism.

Support Logging to Coralogix

If the user is providing a CORALOGIX_KEY and a coralogixApplication parameter, then set up a new HTTPS logging endpoint named "Coralogix" with following settings:

{
  "timestamp": %{time.start.msec}V, 
  "applicationName": "trieloff", 
  "subsystemName": "%{req.service_id}V", 
  "severity": %{if(resp.status<400, "3", "")}V%{if(resp.status>=400 && resp.status<500, "4", "")}V%{if(resp.status>=500, "5", "")}V, 
  "json": { 
    "ow": {
      "activationId": "%{req.http.x-openwhisk-activation-id}V"
    },
    "cdn": {
      "url": "https://%{req.http.host}V%{cstr_escape(req.url)}V",
      "host": "%{req.http.host}V",
      "service_id":"%{req.service_id}V",
      "version": "%{req.http.X-Version}V",
      "time": {
        "start": "%{begin:%Y-%m-%dT%H:%M:%S%Z}t",
        "end": "%{end:%Y-%m-%dT%H:%M:%S%Z}t",
        "elapsed": %D
      },
      "client": {
        "name": "%{client.as.name}V",
        "number": "%{client.as.number}V",
        "connection_speed": "%{client.geo.conn_speed}V",
        "ip": "%{regsuball(req.http.X-Forwarded-For, "((\\d+)\\.(\\d+)\\.(\\d+)\\.)(\\d+)", "\\1xxx")}V"
      },
      "request": {
        "id": "%{req.http.X-CDN-Request-ID}V",
        "method": "%m",
        "protocol": "%H",
        "h2": %{if(fastly_info.is_h2, "true", "false")}V,
        "h2_push": %{if(fastly_info.h2.is_push, "true", "false")}V,
        "is_ipv6": %{if(req.is_ipv6, "true", "false")}V,
        "h2_stream_id": "%{fastly_info.h2.stream_id}V",
        "url":"%{cstr_escape(req.url)}V",
        "referer": "%{Referer}i",
        "user_agent": "%{User-Agent}i",
        "accept_content": "%{Accept}i",
        "accept_language": "%{Accept-Language}i",
        "accept_encoding": "%{Accept-Encoding}i",
        "accept_charset": "%{Accept-Charset}i",
        "connection": "%{Connection}i",
        "dnt": "%{DNT}i",
        "forwarded": "%{Forwarded}i",
        "via": "%{Via}i",
        "cache_control": "%{Cache-Control}i",
        "x_requested_with": "%{X-Requested-With}i",
        "header_size": %{req.header_bytes_read}V,
        "body_size": %{req.body_bytes_read}V
      },
      "origin": {
        "host": "%v"
      },
      "response": {
        "status":"%s",
        "content_type":"%{Content-Type}o",
        "age":"%{Age}o",
        "cache_control":"%{Cache-Control}o",
        "expires":"%{Expires}o",
        "last_modified":"%{Last-Modified}o",
        "tsv":"%{TSV}o",
        "header_size": %{resp.header_bytes_written}V,
        "body_size": %B
      },
      "edge": {
        "cache_status":"%{regsub(fastly_info.state, "^(HIT-(SYNTH)|(HITPASS|HIT|MISS|PASS|ERROR|PIPE)).*", "\\2\\3")}V",
        "is_cacheable":%{if(fastly_info.state ~"^(HIT|MISS)$", "true", "false")}V,
        "datacenter":"%{server.datacenter}V",
        "ip":"%A"
      },
      "socket": {
        "cwnd": %{client.socket.cwnd}V,
        "nexthop": "%{client.socket.nexthop}V",
        "tcpi_rcv_mss": %{client.socket.tcpi_rcv_mss}V,
        "tcpi_snd_mss": %{client.socket.tcpi_snd_mss}V,
        "tcpi_rtt": %{client.socket.tcpi_rtt}V,
        "tcpi_rttvar": %{client.socket.tcpi_rttvar}V,
        "tcpi_rcv_rtt": %{client.socket.tcpi_rcv_rtt}V,
        "tcpi_rcv_space": %{client.socket.tcpi_rcv_space}V,
        "tcpi_last_data_sent": %{client.socket.tcpi_last_data_sent}V,
        "tcpi_total_retrans": %{client.socket.tcpi_total_retrans}V,
        "tcpi_delta_retrans": %{client.socket.tcpi_delta_retrans}V,
        "ploss": %{client.socket.ploss}V
      }
    }
  }
}

Note: the HTTP logging endpoint might not be enabled for a service config. In this case, the entire transaction should fail, even if Google logs have been set up successfully.

An in-range update of epsagon is breaking the build 🚨

The dependency epsagon was updated from 1.33.2 to 1.33.3.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

epsagon is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • Tidelift: Dependencies checked (Details).
  • ci/circleci: build: Your tests failed on CircleCI (Details).
  • build: * build - Failed
  • branch-deploy - Blocked

Release Notes for v1.33.3

1.33.3 (2019-09-08)

Bug Fixes

  • http.js: collect request body from request buffers (#170) (6e26e8b)
Commits

The new version differs by 1 commits.

  • 6e26e8b fix(http.js): collect request body from request buffers (#170)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Error during setup of Coralogix logging

Description
Coralogix logging setup via command line fails.

To Reproduce
Use the instructions from here (omitting the splunk part)

Expected behavior
Logging is set up on the Fastly service.

Actual behavior

Couldn't find syslog '{ deleted => 0000-00-00 00:00:00, name => helix-coralogix, service => < FASTLY_SERVICE_ID>, version => < SERVICE_VERSION> }

Workaround
Set up logging manually via Fastly UI.

An in-range update of @google-cloud/bigquery is breaking the build 🚨

The dependency @google-cloud/bigquery was updated from 4.1.4 to 4.1.5.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@google-cloud/bigquery is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ci/circleci: build: Your tests failed on CircleCI (Details).
  • build: * build - Failed
  • branch-deploy - Blocked

Release Notes for v4.1.5

Performance Improvements

Commits

The new version differs by 10 commits.

  • 8a2ea87 chore: release 4.1.5 (#502)
  • 8daafcc perf: pull in paginator refactor (#499)
  • af5bdce docs(samples): deflake sample tests (#501)
  • af9c81f docs(samples): fixes location typo (#497)
  • 965f669 refactor(dataset): Moves dataset#getTables overloads to correct documentation generation (#494)
  • 6853010 test: set minCreationTime for getJobs (#496)
  • 0527ed7 docs: update README to include latest samples (#495)
  • 0a54caa chore(deps): update dependency @google-cloud/paginator to v2 (#493)
  • 03f86e7 docs(samples): adds more samples (#492)
  • 06f5981 docs(samples): Adds samples (#488)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.