Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added documentation for real life usage and profile history #165

Merged
merged 31 commits into from
Aug 28, 2018

Conversation

SuYoungHong
Copy link
Contributor

added docs for real life use cases and profile history

@badboy
Copy link
Member

badboy commented Aug 2, 2018

Some typos: https://travis-ci.org/mozilla/firefox-data-docs/builds/411230832#L666-L689

"stubinstaller" should probably be "stub installer". "client_id" should be "client ID" in a sentence (unless referring to the dataset field). The others are actualy typos.

@SuYoungHong
Copy link
Contributor Author

@badboy , good catch! Fixed the typos.

  • Su

badboy
badboy previously requested changes Aug 2, 2018
Copy link
Member

@badboy badboy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good start.
I left some comments, it's mostly some wording changes.

Two more things:

  • this PR includes your resources/Screen Shot.... They are not used and shouldn't be included.
  • Drop the section1- and section2- from the file names of the chapters.

@@ -0,0 +1,135 @@
# Real World Usage

This page backs away from our profile-focused data view and examines what Firefox usage looks like in the real world. There are many components and layers that exist between a user acquiring and running Firefox, and this documentation will illuminate what those are, and how they can affect the meaning of a profile.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should make it clear that this only focuses on Firefox Desktop

* 4: OS user profile
- Most operating systems allow users to log into different user profiles with seperate user directories (such as a "Guest" accounts).
- Usually, Firefox is installed into a system directory that all users profiles will share, but Firefox profiles are saved within the user directories, effectively segregating them.
* 5: FF binary / installer
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should expand this abbreviations here. FF => Firefox

- Usually, Firefox is installed into a system directory that all users profiles will share, but Firefox profiles are saved within the user directories, effectively segregating them.
* 5: FF binary / installer
- The downloaded binary package or stubinstaller which installs Firefox into the hard drive. Users can get these from our website or one of our managed properties, but they can also acquire these from 3rd party sources as well.
- Our website is instrumented with GA to track download numbers, but other properties (FTP) and 3rd party sources are not. GA data is not directly connected to Telemetry data.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same for GA -> Google Analytics

* 5: FF binary / installer
- The downloaded binary package or stubinstaller which installs Firefox into the hard drive. Users can get these from our website or one of our managed properties, but they can also acquire these from 3rd party sources as well.
- Our website is instrumented with GA to track download numbers, but other properties (FTP) and 3rd party sources are not. GA data is not directly connected to Telemetry data.
- A user can produce multiple installations from a single FF binary / installer. For example, if a user copies it to a USB stick or keeps it in cloud storage, they could install Firefox on multiple machines from a single install.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

- from a single install
+ from a single binary / installer

* 7: FF profile
- The profile Firefox uses during a user's session.
- A user can create multiple Firefox profiles using the Firefox Profile Manager, or by specifying a custom directory to use at startup. More details [here](link to Jan Erik's documentation).
- This is the entity that we see in telemetry. A client_id corresponds to a specific profile (however, a client_id does not always correspond to a single profile sitting inside a single computer).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should treat "Telemetry" as a name and title-case it (telemetry -> Telemetry)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should make it more clear that Telemetry identifies a profile by a client id.
Something along those lines:

"A profile is identified by a client ID, which is used by Telemetry as the identifier and contained in pings."

(Feel free to change the wording)


In telemetry, this user would just show up as a single `client_id`.

Assuming they went through our normal funnel, they should show up once in GA as a download and once in stubinstaller pings as a new installation (if they used a stubinstaller).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we expanded GA once before we could continue to use the abbreviation here.


![](images/regular-user.png)

In telemetry, this user would just show up as a single `client_id`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

- telemetry
+ Telemetry


Think of the situation where the IT staff sets up the computer for a new hire at a company. Instead of going through to trouble of installing all the required programs and setting them up correctly for each computer, they'll do it once on one computer, save the disk image, and simply copy it over each time they need to issue a new machine.

Or think of the case where the IT staff of a library or PC Bang needs to set up 2 dozen machines at once.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to look up "PC Bang" because I was not familiar with the term. Maybe we can leave it out?


![](images/migration-3.png)

In this case, there will not a second download event, but there will be an install event and the new and old machines will have seperate `client_id`s.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

- will not a second download event
+ will not be a second download event

* 1: The user
- A human being presumably.
* 2: The machine
- They physical hardware running Firefox.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

- They physical
+ The physical

@SuYoungHong
Copy link
Contributor Author

good points! made requested changes

@badboy
Copy link
Member

badboy commented Aug 2, 2018

Rendered (also includes my draft coming in another PR)

@badboy
Copy link
Member

badboy commented Aug 2, 2018

One thing I forgot to note: I haven't reviewed the "Profile History" chapter yet.

@SuYoungHong
Copy link
Contributor Author

noted!

Copy link
Contributor

@georgf georgf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great to see this! On a high-level, this looks good to me.


#### Migrations

* Type 1: Migrate Disk Image
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you make these sub headings?

Diagram:
![](images/profile-history/ping-diagram-gap.png)

It's possible this behavior is due to dropped pings or pings that never reached us due ping sending logic.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"due to"

SUMMARY.md Outdated
* High-level Behavior
* Profile Behavior
* [Real World Usage](high_level/profile/realworldusage.md)
* [Profile History](high_level/profile/profilehistory.md)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For order, should we have the profile details (history, creation) first? Or the real-world usage?
Either way could make sense i guess.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think Real World Usage should come first, or be a level above the profile details. But I'm open to ideas!

@georgf
Copy link
Contributor

georgf commented Aug 2, 2018

@mreid-moz @harterrt This is a starting point on documenting profile behavior as it relates to data & Telemetry.
This is a first step, with more parts coming in other PRs.
Currently this got put into it's own top-level section "High-level Behaviour". Does that make sense to you?

@badboy badboy mentioned this pull request Aug 2, 2018
@SuYoungHong
Copy link
Contributor Author

@georgf , changed the bullets to headings and fixed the typo.

Also, I slightly changed the diagram organization

@harterrt
Copy link
Contributor

harterrt commented Aug 3, 2018

Thanks, All!

I'd title this section "Telemetry Behavior Reference", but the placement in SUMMARY.md makes sense to me. Can you list some example "Coming soon" articles? That may help characterize the section.

Can we keep the source documentation in the concepts/ top level directory? E.g. concepts/profile/profilehistory.md.

@badboy
Copy link
Member

badboy commented Aug 9, 2018

So far we will also have some technical docs how firefox uses profiles (#166).
We don't have other "Telemetry Behavior" things lined up right now, but I think we fill find something sooner than later.

(Taking over from Su, doing the re-organization)

No change in content (except section title)
@badboy badboy dismissed their stale review August 9, 2018 14:23

Taking over, review from someone else needed

@georgf georgf requested a review from harterrt August 10, 2018 14:42
@georgf
Copy link
Contributor

georgf commented Aug 10, 2018

@harterrt Are you ok with the structure inside data docs now?

@georgf georgf requested a review from chutten August 10, 2018 14:44
@georgf
Copy link
Contributor

georgf commented Aug 10, 2018

@chutten Can you take a final content review pass over it?

Copy link
Contributor

@chutten chutten left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The structure and content appear correct to me. I have some grammatical suggestions that can be taken to follow-ups after this is merged.

The only thing that prevents landing is supplying the "link to janerik's documentation" in Real World Usage. Everything else could be handled in future iterations.

- Usually, Firefox is installed into a system directory that all users profiles will share, but Firefox profiles are saved within the user directories, effectively segregating them.
* 5: Firefox binary / installer
- The downloaded binary package or stub installer which installs Firefox into the hard drive. Users can get these from our website or one of our managed properties, but they can also acquire these from 3rd party sources as well.
- Our website is instrumented with Google Analytics to track download numbers, but other properties (FTP) and 3rd party sources are not. Google Analytics data is not directly connected to Telemetry data.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At this point it might be relevant to mention attribution's role in identifying the source of the installed firefox.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good point. i'm also working on separate documentation explaining the attribution process, will link it to this doc in the future.


In this case, the old machine and the new machine will just share the same client ID (assuming that the disk was copied after a Firefox profile was created). In fact, it will look exactly like the Cloned Machines case, except that instead of sending pings concurrently, they'll be sending us pings first from the old machine and then from the new machine.

Also, it should be noted that their Firefox profile will 'revert' back to the state that it was in when the disk image was copied, essentially starting over from the past.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(and any unsent pings in the image will be resent)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good point, will add

@SuYoungHong
Copy link
Contributor Author

@chutten , thanks for the notes. will update with new commit

Copy link
Contributor

@harterrt harterrt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, All!

These articles are excellent. I really like this format and I think this will be super useful. A few nits inline.

* `profile_subsession_counter`
- A counter which starts at 1 on the very first run and increments for each subsession. This counter will be reset to 1 if a user resets / refreshes their profile.
* `subsession_start_date`
- The date the subsession occurs in. This field is not always reliable, either due to local clock skew or other less understood reasons.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are these less understood reasons? Or do we not know why the field is unreliable?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll clarify that.


![](images/profile-history/basic-example.png)

This is a nice clean example of profile history. It has a clear **starting ping** and it progresses linearly, with each subsession connecting to the next via `subsession_id`. However, due to the fact that profiles can be shared across machines, and restored manually, etc. ([see here](section1-realworldusage.md)) strange behaviors can arise.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"see here" is a dead link


There is a gap in the profile history.

It's possible this behavior is due to dropped pings or pings that never reached us due to ping sending logic.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the ping sending logic a known issue?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The logic itself shouldn't be the problem. To my knowledge we don't know about any actual issue here.


## How to Order History

(Work in Progress)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please reference a tracking bug so the reader can ask questions


#### History Reruns

(Work in Progress)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please reference a tracking bug here as well.

@badboy
Copy link
Member

badboy commented Aug 21, 2018

I addressed @harterrt's feedback.
From my side this should be ready to be merged (with #166 in the line next)

@badboy
Copy link
Member

badboy commented Aug 24, 2018

@chutten reviewed this documentation when he was reviewing #166. I addressed all his comments and filed follow-ups.

@badboy
Copy link
Member

badboy commented Aug 28, 2018

As Ryan is currently afk for this week, I talked with Georg and we will go ahead and merge this one (feedback was addressed).
We can adjust specific content in follow-ups.

@badboy badboy merged commit aefc6de into mozilla:master Aug 28, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants